默认情况下,Rails 中的表单 post CSRF 保护会为用户创建一个真实性令牌,该令牌仅在用户会话更改时才会更改。我们的一位客户对我们的网站进行了安全审核,并将其标记为问题。
审计员的声明是,如果我们也有一个 XSS 漏洞,攻击者可以获取另一个用户的真实性令牌并利用它进行 CSRF 攻击,直到用户的会话过期。
但在我看来,如果我们有这样的 XSS 漏洞,攻击者可以很容易地获取另一个用户的会话 cookie 并直接登录该用户。或者甚至只是在用户受到攻击时从脚本调用我们的 REST Api。在这种情况下,能够发起 CSRF 攻击似乎并没有变得更糟……问题在于 XSS 漏洞。
我错过了什么吗?Rails 中默认的 CSRF 保护是否存在真正的问题?