Блог

Python/Django: CSRF verification failed

Ошибка “CSRF verification failed. Request aborted”, очень частый вопрос, у новичков, кто начал изучать Django. Это заметка, чтобы решить этот вопрос.

Cross Site Request Forgery protection – (CSRF) один из механизмов защиты от особых атак (подробнее на официальном сайте). Данная возможность была добавлена в Django 1.2 и выше.

Чтобы начать использовать CSRF защиту, нужно добавить тег {% csrf_token %} внутрь каждой POST формы и внести небольшие изменения в файл настройки settings.py, в MIDDLEWARE_CLASSES добавить ‘django.middleware.csrf.CsrfViewMiddleware’.

В результате у вас должно получится, что-то похожее:

MIDDLEWARE_CLASSES = (
'django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
)