0

一些框架(例如 Django)支持对没有任何类型会话的用户进行 CSRF 保护。这样做有什么好处?

当用户没有现有会话时,CSRF 攻击可以利用什么漏洞?

4

2 回答 2

2

在我的头顶上:

  1. 在第 1 天拥有 CSRF 保护意味着如果在第 17 天添加用户会话,您无需担心事后添加它
  2. 即使没有明确的会话,仍然可能有一些其他的身份验证或机制来保护该站点(例如,如果您在私有网络上运行 django 站点;如果您从网络内部浏览该站点并且是邪恶的。 com, evil.com 可能会欺骗您的浏览器向您的私人网站发​​送请求。不太可能,但至少说明了我希望的观点。)

您可能还想在安全堆栈溢出时引发此问题。

(根据下面的评论更新)即使没有身份验证或其他理由信任浏览器,使用 CSRF 保护还有两个其他微弱的好处:正如 Bobince 指出的那样,它确实可以防止更简单的垃圾邮件攻击(因为他们现在需要连接到第一页以获取 CSRF 令牌),这也意味着如果有人做了恶意行为,服务器日志中的 IP 将链接到他们,而不是客户端的 IP。(当然,这是欺骗性的等等,但它仍然比让它看起来像是来自其他人的攻击变得微不足道要好一些)

于 2013-08-06T17:14:12.753 回答
1
  1. 如果您使用某种形式的不基于会话关联的持久身份验证(例如:HTTP Basic Auth),则仍需要 CSRF 保护。

  2. 对于完全匿名的连接,它仍然可以作为一种混淆措施来阻止来自更愚蠢的机器人的自动表单提交。

于 2013-08-07T09:37:22.703 回答