gpt4 book ai didi

ruby-on-rails-3 - Rails 应用程序的安全 session cookie

转载 作者:行者123 更新时间:2023-12-04 06:55:01 25 4
gpt4 key购买 nike

我的 session_store.rb 中有以下配置

Fuel::Application.config.session_store :cookie_store,
:key => "_secure_session",
:secure => !(Rails.env.development? || Rails.env.test?),
:domain => :all

在 application_controller.rb
def default_url_options
return { :only_path => false, :port => 443, :protocol => 'https' }
end

我正在使用设计并且我的 rails3 服务器在 HAProxy 后面运行。 HAProxy 终止 HTTPS 流量并将 HTTP 请求传递给 Rails。我的问题是当我在 session_store.rb 中打开 :secure => true 时,用户被重定向回登录页面,并显示“未授权”消息。我试过调试它很多,不知道如何让它工作。

在这种情况下,HAProxy 是终止所有安全流量并将非安全流量传递到 rails 的反向代理。当 rails 将 cookie 设置为安全时,不知何故它本身无法访问它。

最佳答案

对于您的正常 session cookie,您这样做是正确的。您应该会在浏览器中看到 '_secure_session' cookie 正确设置为安全。对于设计“记住我”cookie,您需要在设计配置中进行设置。在 config/initializers/devise.rb 中,您会在 133 行附近找到一行,看起来像

# Options to be passed to the created cookie. For instance, you can set
# :secure => true in order to force SSL only cookies.
# config.cookie_options = {}

我把它改成:
config.rememberable_options = {:secure => Rails.env.production?}

关于ruby-on-rails-3 - Rails 应用程序的安全 session cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15261772/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com