SESSION_COOKIE_HTTPONLY = True 在 Django 中不起作用:
SESSION_COOKIE_HTTPONLY = True not working in Django:
我在 settings.py
中设置了以下代码:
SESSION_COOKIE_HTTPONLY = True
尽管 docs 说这是默认设置。
然后我在网站上使用 ./manage.py runserver
和 运行 OWASP Zap 扫描仪。但是 OWASP zap 说 cookie 是在没有 HttpOnly 标志的情况下设置的:
当我使用 gunicorn
和 nginx
服务器时,我也遇到了这个问题。我怎样才能设置这个标志?
使用django 1.8
;如果相关,页面 accounts/login
由 django-registration-redux
管理。
您在屏幕截图中突出显示的 cookie 不是会话 cookie,而是 csrf cookie。此 cookie 有一个单独的设置 CSRF_COOKIE_HTTPONLY
。与SESSION_COOKIE_HTTPONLY
不同,CSRF_COOKIE_HTTPONLY
默认为False
,所以需要在设置中添加。
CSRF_COOKIE_HTTPONLY = True
请注意,将 csrf cookie 设置为仅 http 会使执行 ajax post 请求变得更加棘手。您的 javascript 将不得不从页面中提取 csrf 令牌,而不是使用 cookie。
我在 settings.py
中设置了以下代码:
SESSION_COOKIE_HTTPONLY = True
尽管 docs 说这是默认设置。
然后我在网站上使用 ./manage.py runserver
和 运行 OWASP Zap 扫描仪。但是 OWASP zap 说 cookie 是在没有 HttpOnly 标志的情况下设置的:
当我使用 gunicorn
和 nginx
服务器时,我也遇到了这个问题。我怎样才能设置这个标志?
使用django 1.8
;如果相关,页面 accounts/login
由 django-registration-redux
管理。
您在屏幕截图中突出显示的 cookie 不是会话 cookie,而是 csrf cookie。此 cookie 有一个单独的设置 CSRF_COOKIE_HTTPONLY
。与SESSION_COOKIE_HTTPONLY
不同,CSRF_COOKIE_HTTPONLY
默认为False
,所以需要在设置中添加。
CSRF_COOKIE_HTTPONLY = True
请注意,将 csrf cookie 设置为仅 http 会使执行 ajax post 请求变得更加棘手。您的 javascript 将不得不从页面中提取 csrf 令牌,而不是使用 cookie。