【问题标题】:CSRF protection and cross site form accessCSRF 保护和跨站表单访问
【发布时间】:2011-02-16 08:07:48
【问题描述】:

我正在研究跨站点身份验证(某些域具有通用身份验证)。所以我想从其他人那里向主域发送身份验证数据(登录名、密码)。

我应该如何使用protect_from_forgery 以及如何检查是否从有效域接收到数据?

我现在想的是关闭会话控制器的protect_from_forgery并检查接收数据的域名。

但也许我可以为不止一个域配置 CSRF 保护?

【问题讨论】:

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


    【解决方案1】:

    保护工作与检查会话[:_csrf_token],所以如果你的会话在你的所有域中都是相同的,protect_from_forgery 可以工作。

    【讨论】:

      【解决方案2】:

      您的目的是对 CSRF 漏洞的定义。强制用户登录或注销通常对攻击者没有用处。要完成此黑客攻击,攻击者必须知道用户名和密码,这违背了在另一个用户的经过身份验证的会话上“会话骑行”的目的。作为一个写CSRF exploits的铁杆黑客,我告诉你这不是一个严重的问题。

      解决此问题的一种简单方法是检查引用者并确保登录请求来自域白名单。解决此问题的另一种方法是使用像 reCapthca 这样的 Capthca。是的,你看的没错。之所以可行,是因为攻击者无法使用 javascript 或 flash 解决 capthca 以“伪造”有效的登录请求。

      【讨论】:

        猜你喜欢
        • 2018-11-03
        • 1970-01-01
        • 2015-10-06
        • 2015-11-20
        • 2011-10-07
        • 2019-05-16
        • 1970-01-01
        • 2015-04-20
        • 2022-01-28
        相关资源
        最近更新 更多