我在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
管理,如果相关的话。
答案 0 :(得分:3)
您在屏幕截图中突出显示的Cookie不是会话Cookie,而是csrf Cookie。此Cookie有一个单独的设置CSRF_COOKIE_HTTPONLY
。与SESSION_COOKIE_HTTPONLY
不同,CSRF_COOKIE_HTTPONLY
默认为False
,因此您需要在设置中添加它。
CSRF_COOKIE_HTTPONLY = True
请注意,将csrf cookie设置为http只会使执行ajax post请求变得更加棘手。不是使用cookie,而是你的javascript必须从页面中提取csrf令牌。