【发布时间】:2020-04-25 12:37:13
【问题描述】:
我试图在 Rails 5.0.7.2 应用程序的会话 cookie 中设置 SameSite 属性,但在确定设置位置和设置方式时遇到问题。
看起来在 Rails 6.1 中将引入一种全局确定 SameSite 保护级别的方法,请参阅:https://github.com/rails/rails/commit/cd1aeda0a9dc15f09d7bf1b8b59e2ce07946f031。也就是说,如何在以前的版本中进行设置?
处理 SameSite 的方式将改变即将到来的 Chrome 版本 80,我正在尝试为此做准备,特别是涉及到:
“用于跨站点使用的 Cookie 必须指定 SameSite=None;安全才能包含在第三方上下文中。”
【问题讨论】:
-
我认为可以通过monkeypatching ActionDispatch::Request::CookieJar#handle_options 来完成。
-
嗯,在 Rack 版本 2.1 发布之前,您似乎甚至无法将“无”设置为 SamSite 值:github.com/rack/rack/issues/1387
-
您可以通过覆盖
Rack::Utils.set_cookie_header!方法来实现此目的,如此处所述stackoverflow.com/a/60036434/979858
标签: ruby-on-rails devise ruby-on-rails-5 samesite