加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

Django CSRF Coo??kie – 为什么它不会在浏览器关闭时到期?

发布时间:2020-12-20 12:23:27 所属栏目:Python 来源:网络整理
导读:Django允许您指定会话在浏览器关闭时到期(对Chrome有一些警告).为什么不为CSRF cookie做到这一点? 我问,因为在我看来,CSRF令牌容易被泄露(例如,错误地将其放入到外部站点的帖子中),这将是一种缓解.我误会了什么吗? 解决方法 我将从Carl链接的开发人员列表
Django允许您指定会话在浏览器关闭时到期(对Chrome有一些警告).为什么不为CSRF cookie做到这一点?

我问,因为在我看来,CSRF令牌容易被泄露(例如,错误地将其放入到外部站点的帖子中),这将是一种缓解.我误会了什么吗?

解决方法

我将从Carl链接的开发人员列表中重新发布我的答案,以便stackoverflow也有:

如果cookie设置为在浏览器关闭时到期,则会导致CSRF
关闭浏览器的用户的错误(或使用
在它上面的形式)然后从浏览器缓存加载该页面
提交了表格.我对这个用例是否存在矛盾
值得支持(例如,在移动设备上可能很重要),
但我不认为将cookie设置为在浏览器关闭时到期
为其他正确配置提供了很多安全性好处
网站(HTTPS,HSTS等).

Django的CSRF实现与存储的许多其他实现不同[1]
CSRF信息以及服务器上的会话信息. CSRF
机制函数通过匹配表单中提供的令牌与
令牌在浏览器中作为cookie提供.如果您将cookie设置为
‘zzz’,它仍然能很好地运作.安全来自
攻击者无法设置cookie的事实,而不是它发生的事实
包含任何特定的加密值.

如果担心攻击者可以访问用户的物理
会话之间的计算机和窃取CSRF令牌,将其设置为过期
在浏览器关闭时不会阻止攻击者插入cookie
将在下一个会话期间使用的已知值.我不是
确信我们可以保护计算机用户的令牌
由攻击者物理访问.

尽管如此,如果可以令人信服地证明设置cookie
在浏览器关闭时到期不会破坏现有的用例(移动
浏览器是我的主要关注点)我愿意改变默认值
行为.如果有任何非恶意用户,我们通常认为这是一个错误
通过无辜的行为,可以触发CSRF警告.

[1] Django的CSRF实现通常会引发各种错误大多数笔测试工具中的警报,因为它不能正常工作与其他实现相同的方式,并且不依赖于会话曲奇饼.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读