1

私は公開ウェブサイトの 1 つに改良されたパスワード リセット機能を書き込もうとしています。より良いキャプチャに加えて、y 分以内に x 回成功せずにログインを試みるユーザー名にフラグを立てたいと考えていました。最初に考えたのは、各試行をログに記録するデータベースを用意し、試行回数が上限に達した後は、従業員のマネージャーからリセットの電話を受けるまでアカウントをロックすることでした。

SQL による永続性を必要としないより良いアプローチは何ですか。(Cookie/何か他のもの?) 存在しない場合、よりクリーンなアプローチでこれを行うにはどうすればよいですか? 何故か今日は頭がいっぱい

4

5 に答える 5

3

それらのスロットリングに関するこの回答を確認してください。
ログイン試行のスロットリング

興味のある方のために、Jeff Atwood がこのテーマに関する興味深いブログ投稿を行っています。
http://www.codinghorror.com/blog/archives/001206.html

それらをデータベースに格納するのは面倒な場合があり、失敗したログイン試行でテーブルがあふれてしまうのではないかと心配することになります. また、これを制御する何かをユーザーのマシンに保存することも、マシン上のすべてのファイルを制御できるため注意が必要であり、失敗したログインカウンターを簡単にリセットしたり、さらに悪いことに、欠陥のある/悪意のあるデータを送り返したりする可能性があります.

于 2009-06-16T14:48:49.227 に答える
1

クラッカーの目的は、システムにアクセスすることではなく、誰もが使用できないようにすることであることに注意してください。彼は、偽の資格情報で喜んでログインして、特定のユーザーをサイトからブロックすることで、これを達成できるかもしれません! データベースがなければ適切な解決策は見つからないと思います。

于 2009-06-16T15:05:59.737 に答える
1

Cookie は攻撃者に対しては役に立ちません (攻撃者は Cookie を削除するか、送信しないだけです)。インメモリ アプリケーションの状態がある場合は、それを使用できる可能性があります。ロック。また、アプリケーションの状態はおそらくそれらのサーバー間で共有されていないため、多くの異なるサーバーで実行されているアプリではこれでも機能しない可能性があります。データベースにデータを保存することはなぜ悪い考えだと思いますか?

于 2009-06-16T14:52:44.087 に答える
1

データベースを使用し、memcache を使用し、cron ジョブをセットアップしてテーブルを定期的にダンプできます。Cookie やセッション変数を使用することもできますが、セキュリティ上の理由からこれらには依存しません。

于 2009-06-16T14:56:38.460 に答える
1

ユーザーは Cookie をクリアするだけでログイン試行をクリアできるため、Cookie やセッションの使用は好ましくありません。ログイン試行を保存するために一時ディレクトリ内のファイルを使用するのが適切でしょうか?

于 2009-06-16T14:50:36.257 に答える