我在浏览器中设置了一个 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?
最佳答案
我遇到了同样的问题,并且能够使用 tunnels
在我的开发机器上重现gem 作为代理,并设置 force_ssl = true
在“发展”环境中。
我调试了 Rack 和 ActionPack,发现在没有 ; secure
的情况下发送 header 最后,但在此之后进行了修改。
我的下一步是使用 Wireshark 来捕获 SSL session 并对其进行解密,但我已经没有时间了。
我使用托管在 nginx 后面的 PHP 应用程序进行了测试,并且在使用 HTTPS 时,服务器能够发送不包含 secure
的 cookie。旗帜。所以这个问题绝对是我们在 Rails 中使用的堆栈所特有的,而不是浏览器的问题。
关于ruby-on-rails - 强制 Rails cookie 发送任何类型的连接(安全/非安全),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12918167/