我正在使用Django为我的雇主创建一个简单的网站,我不得不通过安全扫描运行代码来测试漏洞。其中一个问题是cookie漏洞,我可以找到要找到的文档。
登录我的网站时会出现cookie漏洞。
这是错误 - 扫描由OCIO-Internet-Scan
运行CVSS:5.0消息:csrftoken Cookie有问题
csrftoken =
J4S6ZO7ssz4TUIlRNv9d95mCFomAbXO1; Host = [removed] Path = /
- Cookie可以缓存。
- Cookie是持久的。 Cookie将于2017年6月7日星期三结束
醇>持久会话处理cookie:会话处理cookie时 持久设置,它允许cookie即使在用户之后也是有效的 终止会话。因此,攻击者可以使用会话cookie 由浏览器存储为文本文件以访问受限信息。 可缓存的cookie:可缓存的cookie可以在代理或缓存中缓存 网关。它可能导致提供过期的cookie值 或过时。如果有攻击者,攻击者也可以窃取此类cookie 代理或网关受到了损害。
我的问题是,我究竟能在哪里更改csrftoken行为?我无法使用谷歌找到它,在修复此问题之前我无法启动该网站。我甚至能够改变csrf如何适应这些错误吗?
答案 0 :(得分:5)
听起来您想将CSRF_COOKIE_AGE
设置更改为None
:
默认值: 31449600 (约1年,以秒为单位)
CSRF Cookie的时代,以秒为单位。
设置长寿命到期时间的原因是避免 用户关闭浏览器或为页面添加书签的问题 然后从浏览器缓存中加载该页面。没有执着 在这种情况下,表单提交将失败。
某些浏览器(特别是Internet Explorer)可以禁止使用 持久性cookie或可以使cookie jar的索引损坏 在磁盘上,从而导致CSRF保护检查(有时 间歇地)失败。 将此设置更改为无以使用基于会话的 CSRF cookie,它将cookie保留在内存中而不是on 持久存储。
这会使它成为会话cookie而不是持久性cookie。会话cookie没有到期日期,因此浏览器仅将其保存在当前浏览器会话的内存中,然后在会话结束时将其删除。
您可以找到有关如何更改Django设置here的信息。