【问题标题】:Why is Safari causing a Rails CSRF exception where Chrome isn't?为什么 Safari 会导致 Rails CSRF 异常,而 Chrome 不会?
【发布时间】:2014-01-28 18:42:44
【问题描述】:

我想通过 iframe 中的 AJAX 请求在我的 Rails 4 应用程序中创建会话。

在 iframe 中,我像往常一样包含了一个带有属性 remote: true 的新会话表单,并在表单正文中包含 <%= token_tag %> 以及在布局头部包含 <%= csrf_meta_tags %>

Chrome 发布此表单和创建会话没有问题。在相同条件下,Safari 会导致 CSRF 异常。

为什么会发生这种情况,我能做些什么来阻止它?据我了解,这不是 CSRF 必不可少的情况,因为没有会话可以劫持,但我仍然对关闭它持谨慎态度。

Chrome 版本:31.0.1650.63

Safari 版本:7.0.1

【问题讨论】:

    标签: ruby-on-rails ajax iframe safari csrf


    【解决方案1】:

    这似乎是著名的“第三方 cookie”问题。 Safari 默认禁用它们。

    更多:How do Third-Party "tracking cookies" work?

    【讨论】:

    • 感谢您的信息。我仍然不明白解决方案是什么。
    • @guyaloni,您要么必须在没有 cookie 的情况下工作,要么将用户带到您的网站并在那里设置 cookie
    猜你喜欢
    • 2015-11-02
    • 1970-01-01
    • 2016-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-21
    • 2014-06-22
    相关资源
    最近更新 更多