http://api.rubyonrails.org/classes/ActionController/Redirecting.html
Redirects the browser to the page that issued the request (the referrer) if possible, otherwise redirects to the provided default fallback location.
The referrer information is pulled from the HTTP `Referer` (sic) header on the request.
有人能够简单地将引荐来源标题更改为恶意网站吗? Rails是否有针对此的任何预防措施?
答案 0 :(得分:1)
很容易说你只能劫持自己,所以它不容易受到伤害。但它比那复杂一点。
请求中的referer标头在技术上是用户输入,不应该被信任。但是,显然有一些控制权,因为浏览器应该设置引用,并且它不应该被某些恶意网站覆盖。在某种情况下,引用者实际上可能是伪造的。例如,如果使用恶意浏览器插件,就像旧的易受攻击的Flash或Java版本 - 两者都可以在某些时候做到这一点。或恶意浏览器扩展。或者原始客户端不是浏览器,因此对引用者的这种保护不适用。
也许这些不适用于您的场景,但如果引用是安全的,那么它也足以用于csrf保护,而不是(或至少不推荐)。
这是关于防御的深度。也许你并不完全知道如何利用它,但在许多情况下,它更倾向于没有这种弱点。话虽如此,redirect_back
在许多情况下都可能正常,而在许多其他情况下则不行。您的威胁模型也应该涵盖这一点。