默认情况下,Rails 通过向站点生成的所有表单添加 authentication_token
来自动向所有表单添加 CSRF 保护。
我真的希望我的网站在首页上有一个简单的注册表单,当然它是一个静态 HTML 页面。理想情况下,这将完全避免触及 Rails 堆栈,从而使我能够向首页提供更多请求。
这样做的缺点是它使 CSRF 保护变得更加困难。
但我想知道是否真的有必要在注册表单上提供 CSRF 保护,因为 CSRF 攻击通常依赖于受害者登录,以便信任可以被利用。如果验证正确,注册表单将使用户登录,但我认为这对攻击者没有任何用处。
是否有对此的既定观点或使用 Rails/jQuery 的解决方法?
最佳答案
不,对于这种特定情况,不可以。 CSRF 攻击允许攻击者利用受害者拥有的权利,
例如bank.com/pay?ammount=1000&to=34.67.978.246
攻击登录表单是没有意义的,因为如果攻击者拥有成功攻击登录字段所需的信息(用户名和密码),他就可以自己登录。
Rails 在登录字段上使用 CSRF 保护的原因很简单:全局实现 CSRF 保护比 95% 的字段实现 CSRF 保护简单得多;)
关于jquery - 注册表单上是否需要 CSRF 保护?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15602473/