繁体   English   中英

在Ruby on Rails中仅接受HTTPS请求

[英]Accept only HTTPS requests in Ruby on Rails

对于某些操作,我只想接受HTTPS请求。
这是我的第一个代码,但我认为有更好的方法。

before_filter :reject_http_request, :only => [:fucntion_a, :function_b]

def reject_http_request
  scheme = request.protocol.to_s.downcase
  if scheme == 'http://'
    raise AccessDeniedException.new("Not allowed protocol scheme")
  end
  true
end

我该如何改进这段代码?

您可以使用rack-ssl-enforcer gem在Rack级别执行此操作。 它可配置为允许排除特定路径,主机和方法。

如果它满足您的需求,我建议您通过滚动自己的解决方案。 我们目前在生产中使用它并且效果很好。

要强制执行特定操作的 SSL,可以使用force_ssl
对于整个应用程序 ,您可以在environment.rb文件中执行: config.force_ssl = true
在这里阅读更多

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM