La première solution est dynamique, parce que vous pouvez remplir le tableau dans l'exécution:
def validate_ip
valid = %w[127.0.0.1 10.0.0.1]
redirect_to(login_path) unless valid.include?(request.remote_ip)
end
L'autre façon de restreindre les adresses IP est, d'utiliser des contraintes dans votre 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
Pour plus d'informations sur Rails and Routes, n'oubliez pas de consulter: Rails Dispatch - The Powerful New Rails Router.
À quel point est-ce sécurisé? Y a-t-il une meilleure validation? –
Je ne compterais pas seulement sur le filtrage IP, vous devriez certainement utiliser l'authentification par mot de passe. La combinaison des deux systèmes devrait être sécurisée. –
Btw a ajouté une autre solution! –