2
Adminコントローラにログインする前にIPアドレスを検証します。RailsがIPアドレスを検証することを了解します
before_filter :validate_ip
このIP検証はどのようにして作成しますか?私はちょうどコントローラにアクセスできるIPアドレスを書きたいと思う。あなたは、ランタイムで配列を埋めることができるので
Adminコントローラにログインする前にIPアドレスを検証します。RailsがIPアドレスを検証することを了解します
before_filter :validate_ip
このIP検証はどのようにして作成しますか?私はちょうどコントローラにアクセスできるIPアドレスを書きたいと思う。あなたは、ランタイムで配列を埋めることができるので
最初のソリューションは、動的である:
def validate_ip
valid = %w[127.0.0.1 10.0.0.1]
redirect_to(login_path) unless valid.include?(request.remote_ip)
end
IPアドレスを制限する他の方法は、あなたのroutes.rb
に制約を使用して、次のとおりです。
get '/admin' => 'admin#super_secure_action', :constraints => { :ip => %w[127.0.0.1 10.0.0.1] }
# or
constraints(:ip => %w[127.0.0.1 10.0.0.1]) do
# Every route defined in here will be restricted.
get '/admin' => 'admin#super_secure_action'
end
レールとルートの詳細については、Rails Dispatch - The Powerful New Rails Routerを確認してください。
どの程度安全ですか?より良いバリデーションはありますか? –
私はIPフィルタリングだけに依存しないので、間違いなくパスワード認証を使用する必要があります。両方のシステムの組み合わせは安全でなければなりません。 –
Btwが別の解決策を追加しました! –