rails CSRF 生成的令牌有什么用?

How is rails CSRF generated token useful?

看来我在 CSRF 工作机制中遗漏了一些东西,据我了解:如果随表单提交的 CSRF 令牌与会话中的令牌不匹配,会话将被破坏,因此所有身份验证数据都将丢失用户很可能无法完成所需的操作。

但是黑客不能读取表单中的 CSRF 令牌并将其添加到他通过某些脚本生成的 post 请求中吗?我的意思是我不明白 CSRF 令牌如何防止任何事情。

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

查看此处了解更多信息:http://guides.rubyonrails.org/security.html#cross-site-request-forgery-csrf

假设你想破解你朋友的贝宝账户并让他给你买东西。

  1. 你可以写一封电子邮件告诉他点击这个按钮就可以得到 一个免费的饼干。
  2. 你的朋友被邮件骗了会点击按钮。如果你 让这个按钮在电子邮件中提交一个隐藏的表格来支付你 钱.
  3. 你的朋友现在在他的电脑上可能会有他的帐户 默认认证。
  4. 如果没有 CSRF 令牌,您现在可以提交表单 用你的朋友 paypal 给自己买东西。

但是鉴于 paypal 验证 CSRF 令牌,您将无法提交此类表单。