ruby-on-rails - 在 Rails 中设置 session_id cookie SameSite 属性

标签 ruby-on-rails devise ruby-on-rails-5 samesite

我试图在我的 Rails 5.0.7.2 应用程序的 session cookie 中设置 SameSite 属性,但我在确定在哪里以及如何设置它时遇到问题。

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

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

"Cookies for cross-site usage must specify SameSite=None; Secure to enable inclusion in third party context."



https://web.dev/samesite-cookie-recipes/更多信息。

最佳答案

我可以用 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

关于ruby-on-rails - 在 Rails 中设置 session_id cookie SameSite 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59638005/

相关文章:

ruby-on-rails - 带有 Rails 的 AJAX 设计表单不更新数据

ruby-on-rails - 在 as_json 中订购嵌套关联

mysql - 验证整数对于数据库来说不会太大

mysql - 汇总 Ruby on Rails 中表中的条目数量

ruby-on-rails - 设计 Rails session ID

ruby-on-rails - 在模型中访问Devise的current_user

json - 如何从 postgres JSONB 列获取值?

ruby-on-rails - 如何在 Rails 种子 :db file? 中包含方法

ruby-on-rails - Rails HTML/TEXT UserMailer 模板

ruby-on-rails - 设计 - Bootstrap - RoR:设计中的链轮::Rails::Helper::AssetNotFound::Sessions#new