SESSION_COOKIE_HTTPONLY = True не работает в Django:
Я установил следующий код в моем settings.py
:
SESSION_COOKIE_HTTPONLY = True
хотя в документах сказано, что это по умолчанию.
Тогда я использую ./manage.py runserver
и запустите OWASP Zap сканер на сайте. Но OWASP zap говорит, что cookie был установлен без флага HttpOnly:
У меня также есть эта проблема, когда я сервер сервера с gunicorn
а также nginx
, Как мне установить этот флаг?
С помощью django 1.8
; страница accounts/login
управляется django-registration-redux
, если это актуально.
1 ответ
Файл cookie, выделенный вами на снимке экрана, - это не файл cookie сеанса, а файл cookie csrf. Есть отдельная настройка CSRF_COOKIE_HTTPONLY
для этого печенья. В отличие от SESSION_COOKIE_HTTPONLY
, CSRF_COOKIE_HTTPONLY
по умолчанию False
, так что вам нужно добавить его в настройках.
CSRF_COOKIE_HTTPONLY = True
Обратите внимание, что установка cookie csrf только на http усложнит выполнение запросов поста ajax. Вместо того, чтобы использовать cookie, ваш JavaScript должен будет вместо этого извлечь токен csrf со страницы.