Rails3アプリをブルートフォースログインの推測から保護しようとしています。authlogicを使用しています。特定の回数のログイン試行が失敗した後、ユーザー(またはボット)にキャプチャを強制的に入力させる最良の方法は何ですか?authlogicには、同じIPからの連続した失敗した試行の数を記録するための組み込みのメカニズムがありますか?助けていただければ幸いです。
1 に答える
Authlogic にはAuthlogic::Session::BruteForceProtectionモジュールがあります (ここで実装方法を確認できます)。基本的に、N 回ログインに失敗すると、アカウントがブロックされます。そのドキュメントから:
デフォルトでは、continuous_failed_logins_limit 構成オプションは 50 に設定されており、誰かが 50 回の試行後に連続してログインに失敗した場合、そのアカウントは一時停止されます。これは非常に自由度の高い数字であり、この時点で何かが正しくないことは明らかです。この数値を下げたい場合は、構成をより低い数値に設定してください。
class UserSession < Authlogic::Session::Base
consecutive_failed_logins_limit 10
end
このフィールドを有効にするには、モデルに failed_login_count (整数) フィールドが必要です。
このモジュールを有効にして、コントローラにキャプチャ メカニズムを追加できます。
後で編集:「同じIPから」の部分を見たところです。
「同じIPから」の保護が必要な場合(攻撃者は特定のアカウントに興味がないため、特定のアカウントをクラックすることではなく、DOS攻撃が目的であると想定しています)、私の意見では、そうすべきですこのレベル (レール アプリケーション サーバー) では実行できません。これは、システム管理者がフロントエンド (プロキシ) サーバーで処理する必要があります。