未设置安全会话cookie

时间:2012-10-29 23:16:21

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

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

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

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

1 个答案:

答案 0 :(得分:2)

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