为什么CSRF会保护无会话用户?

时间:2013-08-06 16:32:37

标签: django security csrf django-csrf

某些框架(例如Django)支持没有任何类型会话的用户的CSRF保护。有什么好处?

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

2 个答案:

答案 0 :(得分:2)

脱离我的头顶:

  1. 在第1天获得CSRF保护意味着如果在第17天添加用户会话,您无需担心在事后添加它
  2. 即使没有明确的会话,仍然可能有一些其他身份验证或机制来保护网站(例如,如果您在专用网络上运行django网站;如果您从网络内部浏览该网站AND evil.com,evil.com可以欺骗你的浏览器向你的私人网站发​​送请求。相当不可能,但至少说明我希望。)
  3. 您可能还想在安全堆栈溢出时提出此问题。

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

答案 1 :(得分:1)

  1. 如果您使用的某种形式的持久身份验证不是基于会话关联(例如:HTTP Basic Auth),那么仍然需要CSRF保护。

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