ruby-on-rails - force_ssl 在 Rails 中有什么作用?

标签 ruby-on-rails ssl nginx

在之前的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/

相关文章:

ruby-on-rails - 为什么每当我登录 Rails 应用程序时,都会收到 "PG::NotNullViolation null value in column "id“违反非空约束”?

java - 使用 TLSv1 甚至协议(protocol)配置为 SSL_TLSv2 的应用程序

google-chrome - 301重定向后如何防止chrome从磁盘缓存中加载index.html

nginx - nginx 中的 http_sub_module 似乎不起作用

php - 将 .htaccess 转换为 PHP 脚本的 Nginx 配置时出现问题

ruby-on-rails - I18n::InvalidLocaleData - 无法从中加载翻译

ruby-on-rails - Rails 3.1 : The public directory no longer serves js assets. 如何在页面加载后加载额外的js文件?

ruby-on-rails - spree 商务谷歌分析更新

cordova - 在应用程序浏览器中摆脱 Cordova 中的 SSL 验证

nginx - kubernetes - Nginx,证书管理器,挂载的 secret 文件更新问题