ghe*_*ton 14 ssl rack ruby-on-rails
以前,我一直在使用ssl_requirement来对我们通过ssl提供服务的页面进行细粒度控制,并通过纯http提供服务.
根据ssl_requirement自己的wiki,它已被rails 3.1的Force SSL 取代.然而,情况似乎并非如此.强制SSL似乎没有暴露出相反方向的选项,没有办法强制页面通过常规http发送.
什么是正确的Rails 3.1方式强制页面以纯http显示?Force SSL真的取代了ssl_requirement吗?
Joo*_*aij 26
什么正义说.有些人强烈建议使用SSL浏览所有内容.现在窥探非SSL会话是微不足道的,因此您应该尽量避开想要使用它的人.
然而.
使用before_filter完成它应该相当容易:
class ApplicationController < ActionController::Base
before_filter do
if request.ssl? && Rails.env.production?
redirect_to :protocol => 'http://', :status => :moved_permanently
end
end
end
Run Code Online (Sandbox Code Playgroud)
Force SSL 的代码非常容易阅读。
https://github.com/rails/rails/blob/master/actionpack/lib/action_controller/metal/force_ssl.rb
它似乎没有做相反的事情并强制使用http。它提供了 only 和 except 选项来控制哪些操作和控制器需要 SSL,但没有提供强制使用 HTTP 而不是 https 的方法。
| 归档时间: |
|
| 查看次数: |
5225 次 |
| 最近记录: |