2

一部のアクションについては、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

このコードを改善するにはどうすればよいですか?

4

2 に答える 2

8

rack-ssl-enforcerこれは、 gemを使用してラック レベルで行うことができます。特定のパス、ホスト、およびメソッドを除外できるように構成できます。

それがあなたのニーズを満たしている場合は、独自のソリューションを展開するよりもこれを行うことをお勧めします。現在、本番環境で使用しており、うまく機能しています。

于 2013-01-07T06:01:45.153 に答える
6

特定のアクションにSSLを強制するために、を使用できますforce_sslアプリ全体で、
ファイル内で次のことを実行できます。 詳細はこちらをご覧くださいconfig.force_ssl = trueenvironment.rb

于 2013-01-07T06:43:10.020 に答える