在 Rails 中设置 session_id cookie SameSite 属性

rii*_*rii 5 ruby-on-rails devise ruby-on-rails-5 samesite

我正在尝试在 Rails 5.0.7.2 应用程序中的会话 cookie 中设置 SameSite 属性,但在确定在何处以及如何设置时遇到问题。

看起来 Rails 6.1 将引入一种全局确定 SameSite 保护级别的方法,请参阅: https: //github.com/rails/rails/commit/cd1aeda0a9dc15f09d7bf1b8b59e2ce07946f031。也就是说,如何在之前的版本中进行设置?

SameSite 的处理方式将改变即将到来的 Chrome 版本 80,我正在尝试为此做好准备,特别是因为它涉及:

“用于跨站点使用的 Cookie 必须指定 SameSite=None;确保能够包含在第三方上下文中。”

请参阅https://web.dev/samesite-cookie-recipes/了解更多信息。

Seb*_*ild 2

我能够使用secure_headers gem和 Rails 4.2.11.1 来做到这一点,我将配置放入初始化程序中

SecureHeaders::Configuration.default do |config|
  config.cookies = {
   samesite: {
    none: true
   }
  }
end
Run Code Online (Sandbox Code Playgroud)

https://github.com/twitter/secure_headers/blob/master/docs/cookies.md