从我到目前为止所学到的,令牌的目的是防止攻击者伪造表单提交.
例如,如果某个网站的表单中添加了添加到购物车中的商品,并且攻击者可能会使用您不想要的商品向您的购物车发送垃圾邮件.
这是有道理的,因为购物车表单可能有多个有效输入,攻击者必须做的就是知道网站正在销售的项目.
我理解令牌如何工作并在这种情况下增加安全性,因为它们确保用户实际填写并按下表格中的"提交"按钮以添加到购物车中的每个项目.
但是,令牌是否为用户登录表单添加了任何安全性,这需要用户名和密码?
由于用户名和密码非常独特,攻击者必须知道这两种情况才能使登录伪造工作(即使你没有设置令牌),如果攻击者已经知道这一点,他就可以登录网站本人.更不用说,使用户登录的CSRF攻击无论如何都没有任何实际意义.
我对CSRF攻击和令牌的理解是否正确?我怀疑它们对用户登录表单没用吗?
nat*_*evw 113
是.通常,您需要像其他任何方式一样保护您的登录表单免受CSRF攻击.
否则,您的网站很容易受到某种"受信任的域名网上诱骗"攻击.简而言之,CSRF易受攻击的登录页面使攻击者能够与受害者共享用户帐户.
漏洞就像这样:
作为一个相关的例子,考虑YouTube.YouTube允许用户查看"他们自己的"观看记录的记录,他们的登录表单是CSRF易受攻击的!因此,作为一个结果,攻击者就可以设置了密码的帐户,他们知道,使用登录受害人到YouTube的那个盯梢的受害者在看什么视频-帐户.
在这个评论主题中有一些讨论暗示它可以"仅"用于那样的隐私侵犯.也许,但引用维基百科的CSRF文章中的部分:
登录CSRF可以进行各种新颖的攻击; 例如,攻击者可以稍后使用其合法凭据登录该站点,并查看已保存在帐户中的活动历史记录等私人信息.
强调"小说攻击".想象一下网络钓鱼攻击对用户造成的影响,然后想象一下网络钓鱼攻击通过用户自己的可信书签进入您的网站!在前面提到的评论主题中链接的论文给出了一些超越简单隐私攻击的例子.
Jon*_*Jon 13
您的理解是正确的 - CSRF的重点在于攻击者可以事先伪造一个看似合法的请求.但是这不能通过登录表单来完成,除非攻击者知道受害者的用户名和密码,在这种情况下有更有效的攻击方式(登录自己).
最终,攻击者可以做的唯一事情是,当安全系统可能将用户锁定一段时间时,通过垃圾邮件发送失败登录会给您的用户带来不便.
jav*_*301 10
基本上,在登录 CSRF 中,用户尝试以自己的身份登录网站,但实际上他们是以攻击者的身份登录的。然后,攻击者可以访问用户认为他们可能在其帐户中私下输入/更改的任何数据。
文章要点:
如果攻击者使用 CSRF 在购物网站上使用攻击者的帐户对受害者进行身份验证,然后受害者输入信用卡信息,则攻击者可能能够使用受害者存储的卡详细信息购买商品
可以通过创建预会话(用户经过身份验证之前的会话)并在登录表单中包含令牌来缓解登录 CSRF。
请记住,一旦用户通过身份验证,预会话就无法转换为真实会话 - 应销毁该会话并创建一个新会话
请注意,这种缓解方法还可以防止会话固定漏洞,因为登录后重新生成会话是此方法的一部分。