是否可能CookieStore配置无法正常工作?

时间:2013-11-01 18:11:22

标签: configuration ruby-on-rails-4 cookiestore

即使我使用:

配置CookieStore
MyApp::Application.config.session_store :cookie_store, {
  key: '_myapp_session',
  cookie_only: false,
  httponly: false
}

我用

发出POST请求
  • _myapp_session = #SOME_SESSION_ID
  • 和authenticity_token = #AUTH_TOKEN
  • 和http-header [ X-CSRF-Token ]设置为#AUTH_TOKEN

最后,用户未经过身份验证,并使用新的AUTH_TOKEN和会话ID创建新会话。

有人可以给我一些建议吗?

1 个答案:

答案 0 :(得分:0)

不幸的是,当前4.0分支中没有此选项的支持。虽然此选项被强制为TRUE,但我没有在使用此选项的rails源中找到任何代码。

使隔离的POST请求工作的方法是创建专用的中间件,它将添加适当的会话cookie。它必须插入适当的位置,因为中间件的顺序很重要。

因为在CSRF安全方面非常危险,我们必须在中间件中添加相同的验证,这会将潜在风险限制在最低限度。