【问题标题】:Rails session, how to set SameSite to LaxRails 会话,如何将 SameSite 设置为 Lax
【发布时间】:2020-09-28 19:13:47
【问题描述】:

在 Rails 6.0.3.1 中,有没有办法在不使用 the secure headers gem 之类的 gem 的情况下本地设置 Rails 会话 cookie 相同的站点属性?

【问题讨论】:

    标签: ruby-on-rails session-cookies ruby-on-rails-6


    【解决方案1】:

    把这个before_action扔到你的ApplicationController中:

    response.headers['SameSite'] = 'Lax'
    

    编辑:我的回答是针对 Rails 5.2,。在您的 session_store.rb 文件中设置same_site: :lax确实有效。

    【讨论】:

    • 收紧对我也有用的 Rails 5.2 答案。我的 config/initilizers/session_store.rb 看起来像这样:Rails.application.config.session_store :cookie_store, key: 'myKey', same_site: :strict
    【解决方案2】:

    我没有针对我的具体问题的解决方案,因此我升级了我的应用程序以使用 Rails 6.1,它有一个名为 new_framework_defaults_6_1.rb 的新初始化文件,其中包含以下内容。解决我的问题的不言自明的 cmets。 我不相信每个 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
    

    【讨论】:

      猜你喜欢
      • 2020-06-07
      • 1970-01-01
      • 2020-05-23
      • 2020-05-16
      • 2023-03-27
      • 1970-01-01
      • 2022-01-04
      • 2020-05-17
      • 2021-08-21
      相关资源
      最近更新 更多