ruby-on-rails - 为什么 Safari 会导致 Rails CSRF 异常,而 Chrome 不会?

标签 ruby-on-rails ajax iframe safari csrf

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

在 iframe 中,我包含了一个具有属性 remote: true 的新 session 的表单。像往常一样,包括 <%= token_tag %>在表单体以及 <%= csrf_meta_tags %>在布局的头部。

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

为什么会发生这种情况,我该怎么做才能阻止它?据我了解,这不是 CSRF 必不可少的情况,因为没有 session 可以劫持,但我仍然担心将其关闭。

Chrome 版本:31.0.1650.63

Safari 版本:7.0.1

最佳答案

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

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

关于ruby-on-rails - 为什么 Safari 会导致 Rails CSRF 异常,而 Chrome 不会?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21033364/

相关文章:

ruby-on-rails - rails/Ubuntu : SSLv3 read server certificate B: certificate verify failed

ruby-on-rails - Rails update_attributes 没有保存?

c# - Ajax JQuery 将数据传递给 POST 方法

javascript - Backbone.js 使用 destroy/delete 发送变量

css - 尝试仅使用 div 和 css 而不是表格来实现格式化

css - Less::错误/无法识别的输入 - twitter-bootstrap-rails

ruby-on-rails - t.belongs_to 和对 postgresql 数据库的影响

ruby-on-rails - Ruby on Rails Web服务-通过Ajax请求访问

javascript - Safari 8 第 3 方 cookie 未发送

html - iframe 中高度为 : 100% strech 的元素