2

我正在尝试将会话 cookie 安全标志设置为 true。我将以下内容添加到我的环境/production.rb

ActionController::Base.session_options[:secure] = true

在生产模式下,我在服务器响应中看不到 set-cookie 标头(我正在使用 Tamper Data Firefox 工具查看流量)。我尝试删除所有cookie,手动设置包括子域的域(由于域在许多应用程序之间共享,appache服务器将请求转发到正确的应用程序,因此应用程序服务器始终接收请求,就好像它来自本地主机一样)。我还尝试在开发模式下对其进行测试,我假设服务器至少应该设置 cookie,即使请求是通过 http 进行的,但浏览器不会通过 http 发送 cookie,但服务器也不会发送 set-cookie 标头. 如果我不设置安全标志,会话就可以正常工作。我在这里错过了什么吗?

4

1 回答 1

2

我发现在我的 actionpack 版本中,会话 cookie 仅通过 ssl 设置。虽然根据定义,当请求通过 http 时,服务器可以设置一个安全的 cookie,但浏览器不会将它与进一步的请求一起发送。在我的应用程序中,我没有在应用程序级别强制执行 ssl,而是在 appache 级别强制执行,因此 rails 发出的初始请求是通过 http 并且未设置 cookie。

于 2012-10-31T18:58:31.067 回答