首页 文章

Rails默认的CSRF保护是不安全的吗?

提问于
浏览
11

默认情况下,Rails中的表单后期CSRF保护会为用户创建一个仅在用户会话更改时更改的真实性令牌 . 我们的一位客户对我们的网站进行了安全审核,并将其标记为问题 .

审计员的声明是,如果我们还有一个XSS漏洞,攻击者可以抓取另一个用户的真实性令牌,并利用它进行CSRF攻击,直到用户会话到期为止 .

但在我看来,如果我们有一个类似的XSS漏洞,攻击者可以轻松地抓取另一个用户的会话cookie并直接登录该用户 . 或者甚至只是在用户受到攻击时从脚本调用我们的REST Api . 在这种情况下,能够发起CSRF攻击似乎并不会更糟......问题在于XSS漏洞 .

我错过了什么吗? Rails中的默认CSRF保护是否存在实际问题?

1 回答

  • 11

    你是完全正确的 . 基于令牌的CSRF保护是最常见的,只要您测试XSS的应用程序就应该没问题 .

    有些情况下,无论XSS如何,CSRF仍然可以停止 . 例如,对于您的密码更改论坛,要求他们知道当前的密码 . 黑客将无法伪造此请求,除非他知道当前的密码,这是一个有争议的问题 .

    另一种方法是要求Captcha为该请求求解 . 我建议使用reCapthca .

相关问题