【发布时间】:2016-02-29 17:45:14
【问题描述】:
我有一个包含许多远程表单的单页 ROR 应用程序。我的问题是,在非幂等请求 Rails 更改 CSRF 令牌并使嵌入在页面元数据中的令牌无效之后。如果页面没有刷新,那么重复的非幂等请求就会失败。
例如,当通过 POST 提交的远程表单因验证错误而失败并重新提交表单时,它会因 InvalidAuthenticityToken 错误而失败。
我认为这个问题很常见,Rails 可以默认处理它,但显然不是。
【问题讨论】:
-
你能让 CSRF 令牌持久化吗?每个用户会话只需要一个 CSRF 令牌,而不是每个“不安全”请求。
-
@SilverlightFox 保留 CSRF 令牌不会降低应用程序的安全性吗?攻击者是否有可能捕获 CSRF 令牌并在发出请求时使用它?
-
不是,see here。 BREACH attack 存在一些风险,但是您最好禁用通过 HTTPS 进行的任何压缩。
-
刚刚也添加了我自己的答案:security.stackexchange.com/a/106826/8340
标签: jquery ruby-on-rails json security csrf