Като част от системата за влизане, която създавам, следя неуспешните опити за влизане в рамките на уникална сесия, наречена на всеки клиент:
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 неуспешни опита, изисквам да се попълва captcha при всеки следващ опит.
Просто се притеснявам, че може да има някои мрежи, в които на много потребители е присвоен един и същ IP адрес, в който случай, ако 1 потребител не успее да влезе, всички ще започнат да виждат captcha, въпреки че само на този 1 потребител трябва да се покаже captcha.
Това разумно ли е или никога няма ситуация, в която 2 потребители могат да имат един и същ IP, например те могат да имат едни и същи първи 3 октета, но последното число ще бъде различно, в който случай не трябва да се притеснявам.
Ако има вероятност множество потребители да споделят един и същ IP, тогава какъв е добър начин да се определи уникален идентификатор за името на моята сесия, който ще свърже невлязъл потребител със сесията?