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

jwi*_*sco 5 cookies ruby-on-rails ruby-on-rails-3

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

def set_browser_cookie
  cookies.permanent[:ignore_stats_cookie] = {
    :value => STAT_COOKIE,
    :domain => :all,
    :secure => false,
    :httponly => false
  }
  redirect_to settings_path
end
Run Code Online (Sandbox Code Playgroud)

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

本地主机

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

生产

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

Rob*_*rty 1

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

我调试了Rack和ActionPack,发现标头发送时没有; secure结尾,但之后被修改了。

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

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