在之前的question我发现我应该设置 nginx ssl 终止,而不是让 Rails 处理加密数据。
那为什么会出现下面的情况呢?
config.force_ssl = true
我看到这在生产配置文件中被注释掉了。但是,如果期望 nginx 将处理所有 ssl 内容,以便我的 Rails 应用程序不处理加密数据,那么 config.force_ssl = true
做了什么?
如果我知道我将一直使用 nginx,我是否应该在生产环境中将其注释掉?
最佳答案
它不只是强制您的浏览器将 HTTP 重定向到 HTTPS。它还将您的 cookie 设置为标记为“安全”,并启用 HSTS ,其中每一个都可以很好地防止 SSL 剥离。
即使 HTTPS 保护位于“https://example.com/yourapp”的应用免受 MITM 攻击,但如果有人介于您的客户端和服务器之间,他们可以很容易地让您访问“http://example.com/yourapp”。在没有上述保护的情况下,您的浏览器会很乐意将 session cookie 发送给执行 MITM 的人。
关于ruby-on-rails - force_ssl 在 Rails 中有什么作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15676596/