В рамках системы входа в систему, которую я создаю, я отслеживаю неудачные попытки входа в уникальный сеанс, названный в честь каждого клиента:
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;
}
}
Как видите, чтобы определить уникальное имя для каждой сессии, я добавляю IP-адрес пользователя в конец строки «failed_login_attempts».
Если пользователь достигает 5 неудачных попыток, я требую заполнения капчи при каждой последующей попытке.
Я просто беспокоюсь, что могут быть некоторые сети, в которых многим пользователям назначается один и тот же IP-адрес, и в этом случае, если 1 пользователь не сможет войти в систему, они все начнут видеть капчи, хотя только этому 1 пользователю нужно показать капчу.
Разумно ли это или никогда не бывает ситуации, когда 2 пользователя могут иметь один и тот же IP-адрес, например, у них могут быть одинаковые первые 3 октета, но последний номер будет другим, и в этом случае мне не о чем беспокоиться.
Если существует вероятность того, что несколько пользователей используют один и тот же IP-адрес, то как определить уникальный идентификатор для имени моего сеанса, который свяжет пользователя, не вошедшего в систему, с сеансом?