5

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

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

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

本地主机

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

生产

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

4

1 回答 1

1

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

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

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

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

于 2013-09-26T16:39:34.680 回答