强制Rails cookie发送任何类型的连接(安全/不安全)

时间:2012-10-16 15:27:55

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

我在浏览器中设置了一个cookie,如下所示:

def set_browser_cookie
  cookies.permanent[:ignore_stats_cookie] = {
    :value => STAT_COOKIE,
    :domain => :all,
    :secure => false,
    :httponly => false
  }
  redirect_to settings_path
end

当我在Chrome中查看Chrome中的Cookie时,Cookie允许任何类型的连接。

localhost

当我在PRODUCTION中查看Chrome中的Cookie时,Cookie只允许安全连接(应用程序本身为https)。

production

我正在将Cookie设置为:secure => false,,那么为什么只为生产中的安全连接设置Cookie?

1 个答案:

答案 0 :(得分:1)

我遇到了同样的问题,并且能够使用tunnels gem作为代理在我的开发机器上重现,并在'development'环境中设置force_ssl = true

我调试了Rack和ActionPack,发现标题最后没有; secure发送,但之后会被修改。

我的下一步是使用Wireshark捕获SSL会话并对其进行解密,但我已经没时间了。

我使用在nginx后面托管的PHP应用程序进行测试,并且在使用HTTPS时,服务器能够发送不包含secure标志的cookie。所以这个问题肯定是我们在Rails中使用的堆栈特有的,而不是浏览器问题。