在Rails 6.0.3.1中,是否有一种方法可以本地设置Rails会话cookie的同一站点属性,而不必使用the secure headers gem之类的gem?
答案 0 :(得分:3)
将此before_action
扔到ApplicationController中:
response.headers['SameSite'] = 'Lax'
编辑:我的回答是针对Rails 5.2和错误。在您的 session_store.rb 文件中设置same_site: :lax
确实可行。
答案 1 :(得分:2)
我没有解决特定问题的方法,因此我将应用程序升级为使用Rails 6.1,该程序有一个名为new_framework_defaults_6_1.rb的新初始化程序文件,其中包含以下内容。自我解释的评论解决了我的问题。 我不认为每个单独的Rails应用程序都应升级到Rails 6.1来解决此问题,Rails团队需要紧急解决此问题,因此我发布了我的答案,但不接受它,希望某人可能对其他任何人有一个更合适的答案解决这个问题。
# Specify cookies SameSite protection level: either :none, :lax, or :strict.
#
# This change is not backwards compatible with earlier Rails versions.
# It's best enabled when your entire app is migrated and stable on 6.1.
Rails.application.config.action_dispatch.cookies_same_site_protection = :lax