SESSION_COOKIE_HTTPONLY = True在Django中不起作用:

时间:2015-08-13 15:08:47

标签: django zap

我在settings.py中设置了以下代码:

SESSION_COOKIE_HTTPONLY = True

即使docs说这是默认值。

然后我使用./manage.py runserver并在网站上运行OWASP Zap扫描程序。但OWASP zap说,cookie没有HttpOnly标志设置:

enter image description here

当我使用gunicornnginx为网站提供服务时,我也遇到了这个问题。如何设置此标志?

使用django 1.8;页面accounts/logindjango-registration-redux管理,如果相关的话。

1 个答案:

答案 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令牌。