web-dev-qa-db-ja.com

Webサイトでのアカウントロックアウトの実装

私のWebサイトのWeb脆弱性スキャナーは、無効なログイン試行が一定回数行われたときに、自分のサイトにアカウントロックアウトメカニズムを実装することを提案しました。私はそれを正しく行うために頭をこれに巻きつけようとしています。

これは私がやろうと決心したことです。まず、無効なログイン試行の場合、最初のエラーメッセージは、ユーザー名またはパスワードのいずれかが間違っていたことです。

次に、ユーザー名は連続して試行しても正しく、パスワードが正しくない場合、x回試行した後にアカウントをロックするカウンターを開始します。カウンターはすぐには表示されません。あと2回トライするまでは表示されません。これにより、最初の試行でスペルミスをしただけでも、ユーザーは緊張しません。

ユーザーがアカウントのロックを続行した場合、さらに正しい資格情報を入力し、セキュリティの質問に回答することで、ロックを解除できます。それでもパスワードがわからない場合は、メールでパスワードの回復を開始できます。

ユーザー名が正しくないという無効な試みが連続して行われたときに何をすべきかを決定するときに、私の問題が発生します。ユーザー名が正しくないため、ロックするアカウントはありません。ログインスクリプトを内部でロックし、クラッカーになる速度を遅くするためのスロットルを導入する提案を読みましたが、ユーザー名またはパスワードが正しくないという標準エラーメッセージを引き続き表示します。この提案に関して私が持っている唯一の問題は、誰かがロックアウトの仕組みを理解したら、有効なユーザー名を入力しているかどうかについて、連続した失敗の後にカウンターを見て、有効なユーザー名を持っていることを知る手がかりを得ることができるということです。 、カウンターなし=有効なユーザー名ではありません。

誰かがこれについて共有できる考えを持っていますか?

[〜#〜] edit [〜#〜]一部の正当なユーザーがこのロックアウトプロセスに巻き込まれる可能性があることに同意します。私は「クラッカーになるだろう」というフレーズの使用は、ユーザー名/パスワードを忘れたすべての人が実際にクラッカーであるとは限らないことを考慮に入れていると思います。

3
Cbomb

IMO、

ログインスクリプトを内部でロックし、スロットルを遅くして導入する」は、誤ったログイン試行を処理するはるかに成熟したアプローチです。

私の知る限り、WindowsとLinuxはこのアプローチを使用しています。 Macについてはわかりません。

2/3の間違った試行の後に「パスワードを忘れた」ボタンが表示されることを追加することで、少しインタラクティブにすることができます。

1
kmonsoor