私が作成しているログインシステムの一部として、各クライアントにちなんで名付けられた一意のセッション内で失敗したログイン試行を追跡します。
if($login_failed) {
// update failed login attempts
$session_name = 'failed_attempts'.$_SERVER['REMOTE_ADDR'];
if(!isset($_SESSION[$session_name])) {
$_SESSION[$session_name] = 1;
}
else {
$_SESSION[$session_name] += 1;
}
}
ご覧のとおり、各セッションの一意の名前を決定するために、文字列「failed_login_attempts」の最後にユーザーのIPアドレスを追加します。
ユーザーが5回失敗した試行に達した場合、それ以降の試行ごとにキャプチャを入力する必要があります。
多くのユーザーに同じIPアドレスが割り当てられているネットワークがあるのではないかと心配しています。その場合、1人のユーザーがログインに失敗すると、その1人のユーザーだけがキャプチャを表示する必要がありますが、すべてのユーザーにキャプチャが表示され始めます。
これは合理的ですか、それとも2人のユーザーが同じIPを持つことができる状況はありません。たとえば、最初の3オクテットは同じですが、最後の数は異なります。その場合、心配する必要はありません。
複数のユーザーが同じIPを共有する可能性がある場合、ログインしていないユーザーをセッションにリンクするセッション名の一意の識別子を決定するための良い方法は何ですか?