Rails SSL重定向通过gem与Apache级别



我正在研究实现SSL以保护我的rails应用程序的最佳方法。目前的建议似乎是一直使用SSL。目前似乎有两种方法:

  1. 使用一个gem,如Rack::SSL或Rack::SslEnforcer,详细讨论如下:http://collectiveidea.com/blog/archives/2010/11/29/ssl-with-rails/

  2. 在web服务器级别重定向,这里推荐使用:Rails + SSL:每个控制器还是整个应用程序?

我确信在Apache级别重定向(假设正在运行Apache)一定是可行的方法,既可以简化实现,又可以简化性能。

我不明白的是,为什么有这么多的精力和注意力投入到使用gem在应用层做这件事?甚至有一个来自DHH的评论(上面第一个链接的最后一个评论)说"Rails 3.1现在将在应用程序和控制器级别都嵌入force_ssl。"那么我错过了什么呢?

为什么总是选择使用其中一个gem来使用SSL ?

第一,它是Rails社区易于采用的标准。现在,当你想为Rails应用程序要求https时,你可以翻转这个开关,它将工作,无论你可能使用什么服务器或其他架构。

第二,如果你使用的是Heroku这样的托管服务,你将无法访问服务器配置设置

force_ssl是Rails 3添加的配置属性。它使应用程序使用Rack::SSL中间件。参考:http://edgeguides.rubyonrails.org/configuring.html

配置。force_ssl是一个方便,让你避免搞乱机架堆栈;已经为你办好了。

在Rails 2。X应用程序,你不会有force_ssl,将不得不注入Rack::SSL或Rack::SslEnforcer自己。

最新更新