Rails 中的真实性令牌有多安全

信息安全 验证 网络服务 csrf
2021-08-30 00:58:42

我遇到了一个使用 Rails Authenticity 令牌来防止 CSRF 攻击的网站。我在这里担心的是我可以在网页的源代码中看到真实性令牌。如果任何其他服务试图进行 CSRF 攻击,而这个令牌是唯一阻止它的东西,为什么攻击者服务不能复制令牌然后进行攻击?

2个回答

在页面正文中包含 CSRF 令牌是防止 CSRF 攻击的标准方法。对于应用程序呈现的每个表单,令牌都是不同的。因此,当提交表单时,可以检查提交的令牌的有效性。

如果攻击者从一个页面中获取令牌,而他认为该令牌对他来说不会像任何其他用户访问同一页面时那样对他有用,那么令牌将不一样。

如果您正在寻找更多信息,您可以查看CSRF上的OWASP 页面StackOverflow 上关于 Rails 细节的这篇文章

CSRF 令牌防止的问题是请求伪造为了成功利用,攻击者必须为他们试图冒充的用户接收令牌副本,而不是为他们自己接收令牌副本。如果正确实施,攻击者目前还没有已知的实用方法来获取这些令牌之一。