安全扫描期间的CSRF令牌cookie漏洞

时间:2016-08-03 19:57:16

标签: python django security cookies

我正在使用Django为我的雇主创建一个简单的网站,我不得不通过安全扫描运行代码来测试漏洞。其中一个问题是cookie漏洞,我可以找到要找到的文档。

登录我的网站时会出现cookie漏洞。

这是错误 - 扫描由OCIO-Internet-Scan

运行
  

CVSS:5.0消息:csrftoken Cookie有问题csrftoken =   J4S6ZO7ssz4TUIlRNv9d95mCFomAbXO1; Host = [removed] Path = /

     
      
  1. Cookie可以缓存。
  2.   
  3. Cookie是持久的。 Cookie将于2017年6月7日星期三结束
  4.         

    持久会话处理cookie:会话处理cookie时   持久设置,它允许cookie即使在用户之后也是有效的   终止会话。因此,攻击者可以使用会话cookie   由浏览器存储为文本文件以访问受限信息。   可缓存的cookie:可缓存的cookie可以在代理或缓存中缓存   网关。它可能导致提供过期的cookie值   或过时。如果有攻击者,攻击者也可以窃取此类cookie   代理或网关受到了损害。

我的问题是,我究竟能在哪里更改csrftoken行为?我无法使用谷歌找到它,在修复此问题之前我无法启动该网站。我甚至能够改变csrf如何适应这些错误吗?

1 个答案:

答案 0 :(得分:5)

听起来您想将CSRF_COOKIE_AGE设置更改为None

  

默认值: 31449600 (约1年,以秒为单位)

     

CSRF Coo​​kie的时代,以秒为单位。

     

设置长寿命到期时间的原因是避免   用户关闭浏览器或为页面添加书签的问题   然后从浏览器缓存中加载该页面。没有执着   在这种情况下,表单提交将失败。

     

某些浏览器(特别是Internet Explorer)可以禁止使用   持久性cookie或可以使cookie jar的索引损坏   在磁盘上,从而导致CSRF保护检查(有时   间歇地)失败。 将此设置更改为以使用基于会话的   CSRF cookie,它将cookie保留在内存中而不是on   持久存储。

这会使它成为会话cookie而不是持久性cookie。会话cookie没有到期日期,因此浏览器仅将其保存在当前浏览器会话的内存中,然后在会话结束时将其删除。

您可以找到有关如何更改Django设置here的信息。