【问题标题】:How is rails CSRF generated token useful?rails CSRF 生成的令牌有什么用?
【发布时间】:2015-08-16 13:34:28
【问题描述】:

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

但是黑客不能读取表单中的 CSRF 令牌并将其添加到他通过某些脚本生成的发布请求中吗?我的意思是我不明白 CSRF 令牌如何保护任何东西。

【问题讨论】:

    标签: ruby-on-rails security csrf


    【解决方案1】:

    假设你想破解你朋友的 paypal 帐户并让他给你买东西。

    1. 你可以发一封邮件告诉他点击这个按钮来获取 一个免费的 cookie。
    2. 被电子邮件欺骗的朋友会点击按钮。如果你 使此按钮在电子邮件中提交隐藏的表单以向您付款 钱。
    3. 您的朋友现在在他的电脑上可能会有他的帐户 默认通过身份验证。
    4. 如果没有 CSRF 令牌,您现在可以提交表单 用朋友的贝宝给自己买东西。

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

    【讨论】:

    • @LoaiGhoraba: See here 一个更清晰的例子。
    【解决方案2】:

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

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

    【讨论】:

    • 是的,我知道,但这是防止什么?
    猜你喜欢
    • 2015-08-15
    • 2010-12-20
    • 2014-01-21
    • 2011-05-02
    • 2014-07-18
    • 2019-04-08
    • 1970-01-01
    • 2012-08-25
    • 2014-08-31
    相关资源
    最近更新 更多