rails CSRF生成的令牌如何有用?

时间:2015-06-02 16:25:48

标签: ruby-on-rails security csrf

似乎我在CSRF工作机制中遗漏了一些东西,据我所知:如果随表单提交的CSRF令牌与会话中的CSRF令牌不匹配,会话将被销毁,因此所有身份验证数据都将丢失并且很可能用户不会'能够完成所需的行动。

但是,黑客是否可以在表单中读取CSRF令牌并将其添加到由某些脚本生成的请求中?我的意思是我不明白CSRF令牌是如何防止任何事情的。

2 个答案:

答案 0 :(得分:1)

让我们说你想破解你朋友的PayPal帐户并让他给你买东西。

  1. 您可以制作一封电子邮件,告诉他点击此按钮即可获取 一个免费的cookie。
  2. 您的朋友被电子邮件愚弄将点击该按钮。如果你 使此按钮在电子邮件中提交隐藏的表单以支付给您 钱。
  3. 你的朋友现在在他的电脑上可能会有他的账号 默认情况下已通过身份验证。
  4. 如果没有CSRF令牌,您现在可以提交表单 和你的朋友贝宝一起买自己的东西。
  5. 但鉴于 paypal验证CSRF令牌,您将无法提交此类表单。

答案 1 :(得分:0)

表单中的CSRF令牌必须匹配另一个保留在服务器端的令牌。

有关详细信息,请参阅此处:http://guides.rubyonrails.org/security.html#cross-site-request-forgery-csrf