登录表单是否需要针对 CSRF 攻击的令牌?

2022-08-30 06:25:21

根据我到目前为止所学到的知识,令牌的目的是防止攻击者伪造表单提交。

例如,如果某个网站有一个表单,该表单输入了添加到您的购物车中的项目,并且攻击者可能会用您不想要的项目向您的购物车发送垃圾邮件。

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

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

但是,令牌是否会为需要用户名和密码的用户登录表单添加任何安全性?

由于用户名和密码非常独特,攻击者必须知道两者才能使登录伪造工作(即使您没有设置令牌),并且如果攻击者已经知道,他可以自己登录网站。更不用说,使用户自己登录的CSRF攻击无论如何都没有任何实际目的。

我对CSRF攻击和代币的理解是否正确?它们是否像我怀疑的那样对用户登录表单无用?


答案 1

是的。通常,您需要像其他任何表单一样保护您的登录表单免受CSRF攻击。

否则,您的网站容易受到某种“受信任的域网络钓鱼”攻击。简而言之,CSRF易受攻击的登录页面使攻击者能够与受害者共享用户帐户。

漏洞是这样的:

  1. 攻击者在受信任的域上创建主机帐户
  2. 攻击者使用此主机帐户的凭据在受害者的浏览器中伪造登录请求
  3. 攻击者诱使受害者使用受信任的站点,他们可能不会注意到他们通过主持人帐户登录
  4. 攻击者现在可以访问受害者在浏览器使用主持人帐户登录时“创建”(有意或无意)的任何数据或元数据

作为一个相关的例子,考虑YouTube。YouTube允许用户查看“他们自己的”观看历史记录的记录,他们的登录表单容易受到CSRF的攻击!因此,攻击者可以使用他们知道的密码设置一个帐户,使用该帐户将受害者登录到YouTube - 跟踪受害者正在观看的视频。

此评论线程中有一些讨论,暗示它可能“仅”用于此类隐私侵犯。也许,但引用维基百科CSRF文章中的部分

登录CSRF使各种新颖的攻击成为可能;例如,攻击者以后可以使用其合法凭据登录站点,并查看保存在帐户中的私人信息,例如活动历史记录。

强调“新奇的攻击”。想象一下网络钓鱼攻击对用户的影响,然后想象一下,所述网络钓鱼攻击通过用户自己的受信任书签作用到您的网站!上述评论线程中链接的论文给出了几个超越简单隐私攻击的例子。


答案 2

你的理解是正确的 - CSRF的全部意义在于攻击者可以事先伪造一个看起来合法的请求。但是,除非攻击者知道受害者的用户名和密码,否则无法通过登录表单完成此操作,在这种情况下,有更有效的攻击方法(自己登录)。

最终,攻击者唯一能做的就是通过垃圾邮件发送失败的登录信息来给用户带来不便,因为安全系统可能会在一段时间内锁定用户。


推荐