login表单是否需要对CSRF攻击进行标记?

从我目前所了解到的情况来看,令牌的目的是防止攻击者伪造表单提交。

例如,如果一个网站有一个表单,将添加的项目input到您的购物车,并且攻击者可以用您不想要的项目将您的购物车垃圾邮件。

这是有道理的,因为可能有多个有效的购物车forms的input,攻击者所要做的就是知道网站正在销售的物品。

我了解这种情况下的令牌是如何工作和增加安全性的,因为它们确保用户实际填写并按下了添加到购物车中的每个物品的“提交”button。

但是,令牌是否将任何安全性添加到需要用户名和密码的用户login表单中?

由于用户名和密码是非常独特的,攻击者必须知道这两个为了login伪造工作(即使你没有设置令牌),如果攻击者已经知道,他可以login到网站本人。 更不用说,使用户login自己的CSRF攻击无论如何不会有任何实际的目的。

我对CSRF攻击和令牌的理解是否正确? 他们是无用的用户login表单,我怀疑?

是。 一般来说,您需要像CSRS一样保护您的login表单。

否则,您的网站很容易受到某种“可信域名networking钓鱼”攻击。 简而言之,CSRF易受攻击的login页面使攻击者能够与受害者共享一个用户帐户。

这个漏洞如下所示:

  1. 攻击者在受信任的域上创build一个主机帐户
  2. 攻击者利用该主机帐户的凭证在受害者的浏览器中伪造一个login请求
  3. 攻击者欺骗受害者使用受信任的站点,他们可能不会注意到他们通过主机帐户login
  4. 攻击者现在可以访问受害者“创build”(有意或无意)的任何数据或元数据,而其浏览器使用主机帐户login

作为一个相关的例子,请考虑YouTube 。 YouTube允许用户查看“自己的”观看历史logging,并且他们的login表单是CSRF易受攻击的! 因此,攻击者可以使用他们已知的密码build立一个帐户,并使用帐户将受害者login到YouTube – 追踪受害者正在观看的video。

在这个评论主题中有一些讨论意味着它可以“仅”用于这样的隐私侵犯。 也许,但引用维基百科的CSRF文章中的部分:

loginCSRF使各种新颖的攻击成为可能; 例如,攻击者随后可以用他的合法证书login到该网站,并查看私人信息,例如已经保存在帐户中的活动历史logging。

强调“小说攻击”。 想象一下钓鱼攻击对用户的影响,然后想象一下钓鱼攻击是通过用户自己的信任书签工作到您的网站的! 在上述评论主题中链接的文章给出了几个例子,超越了简单的隐私攻击。

你的理解是正确的 – CSRF的整个观点是攻击者可以事先伪造一个看起来合法的请求。 但是,除非攻击者知道受害者的用户名和密码,否则这不能用login表单完成,在这种情况下,攻击者可以使用更有效的方法(自己login)。

最终,攻击者可以做的唯一事情是通过垃圾邮件login失败给用户带来不便,因为安全系统可能会locking用户一段时间。