在Rails中设置session_id cookie SameSite属性

时间:2020-01-08 00:38:51

标签: 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/

1 个答案:

答案 0 :(得分:2)

我能够使用secure_headers gem和rails 4.2.11.1进行此操作,将配置放入初始化程序中

SecureHeaders::Configuration.default do |config|
  config.cookies = {
   samesite: {
    none: true
   }
  }
end

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