データベースなしで繰り返しログイン要求をブロックする最良の方法は?

StackOverflow https://stackoverflow.com/questions/1001963

  •  05-07-2019
  •  | 
  •  

質問

公開されているWebサイトの1つに改良されたパスワードリセット機能を記述しようとしていますが、より良いキャプチャに加えて、ログインが成功せずにx分以内にログインしようとするユーザー名にフラグを立てたいと思いました。最初に考えたのは、各試行を記録し、その時間内に最大試行回数を記録した後、データベースをロックして、従業員のマネージャーから電話がかかってくるまでアカウントをロックすることでした。

SQLを介した永続化を必要としないより良いアプローチは何ですか。 (Cookie /その他)?存在しない場合、よりクリーンなアプローチでこれを行うにはどうすればよいですか? 何らかの理由で今日私の脳がいっぱい

役に立ちましたか?

解決

それらの調整については、この回答をご覧ください。
ログイン試行の抑制

Jeff Atwoodには、興味がある場合に備えて、このテーマに関する興味深いブログ投稿があります。
http://www.codinghorror.com/blog/archives/001206.html

それらをデータベースに保存すると退屈になり、ログイン試行の失敗でテーブルがあふれることを心配することになります。また、これを制御する何かをユーザーのマシンに保存することも、マシン上のすべてのファイルを制御できるため、注意が必要です。また、失敗したログインカウンターを簡単にリセットできます。 p>

他のヒント

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

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

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

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top