我对Django的CSRF保护细节有点模糊。尽管实施起来很容易,但我认为CSRF令牌应该与会话无关。因此,当用户注销并且其他人登录时(可能在同一台计算机上),CSRF令牌会发生变化。
但是,我通过Chrome开发人员工具注意到,Cookie中的CSRF令牌有效期为一整年,并且不会更改(除非您删除它,当然,在这种情况下会重新生成)。这意味着cookie的CSRF令牌会持续不同的用户会话。
这里有漏洞吗?我有没有错误地实现了什么或者这是有意的,我只是想知道保护是如何运作的?
答案 0 :(得分:1)
原来没有问题。 Django处理得非常好 - 这是测试版本没有工作/禁用此功能。令牌持久存在于用户会话中,但这只是因为有一个运行该项目的测试版。有了发布版本,一切都很好并受到保护。