【发布时间】:2012-03-15 20:37:12
【问题描述】:
我知道 Rails 默认情况下对 HTTP GET 请求没有 CSRF 保护,因为它声称它们是幂等的。但是,这些 GET 请求会返回给用户的敏感信息,我不希望恶意网站检索这些信息。
在 Rails 中保护来自 CSRF 的 HTTP GET 请求的最佳方法是什么?
【问题讨论】:
-
当恶意方进行 csrf 攻击时,他们看不到请求的结果 - 只有副作用是危险的
-
您通常使用通过 cookie 进行的身份验证来完成此类任务
-
@NikitaBeloglazov 即使通过 cookie 进行身份验证,当浏览器看到对受害者网站的请求时,它通常也会将 cookie 发送到受害者网站。这来自 [维基百科文章] (en.wikipedia.org/wiki/…):“如果 Bob 的银行将他的身份验证信息保存在 cookie 中,并且如果 cookie 没有过期,那么 Bob 的浏览器加载图像的尝试将提交提款表单使用他的 cookie,从而在未经 Bob 批准的情况下授权交易。”
-
@FrederickCheung 您能否进一步解释一下恶意方如何或为什么看不到或看不到请求的结果?
-
不这么认为。显然,Ajax 请求和类似请求将被单源策略禁止
标签: ruby-on-rails ruby-on-rails-3.1 csrf csrf-protection protect-from-forgery