了解rails authenticity_token的必要位置(静态页面登录?)

时间:2011-12-12 04:05:28

标签: ruby-on-rails ruby-on-rails-3 security csrf

如果我的静态主页上有登录表单,我一直在努力解决问题。我想有一些静态页面,在它们上面有一个登录表单会很棒。我花了一些时间来熟悉使用form_tag生成的authenticity_token,虽然我意识到我们通常要检查所有不是GET请求的请求,但我觉得有可能将它留下来登录,因为我们不是t在用户登录之前信任该用户。如果恶意站点此时尝试使用CSRF,则需要知道用户遭到入侵的登录名和密码。

我绝对不想在我的应用程序中打开任何安全漏洞而且我很欣赏rails所做的一切,但是在这种情况下,我认为我可以只提交没有令牌的表单吗? / p>

1 个答案:

答案 0 :(得分:0)

令牌的目的是使数据无法轻易进入您的系统,除非它直接来自该表单。当用户访问该站点时,他们会获得与表单中的令牌匹配的cookie。提交表单时,这些令牌必须匹配。

如果有人可以从表单外部提交数据,那么您就可以开启脚本进行连续登录尝试的可能性。编写可以自动访问您的网站,获取cookie并使用表单登录的内容相当容易,但这绝对是更多的工作。您可以将其视为另一层安全保障,而不会对您的用户产生负面影响。