Вы на правильном пути. Вы должны увеличивать поле счетчика для пользователя в базе данных для каждой последовательной попытки ввода неверного пароля. Если вы пытаетесь сохранить это значение в сеансе или cookie, злоумышленник может уничтожить это значение и повторить попытку после 4 попыток.
Я использую аналогичную стратегию - после 5 неудачных попыток мы запрашиваем капчу. После 10 неудачных попыток мы блокируем аккаунт до сброса. У нас также есть стратегия сброса пароля и разблокировки.
Кто-то упомянул стратегию сна (3). Хотя не рекомендуется слишком быстро возвращать ответы на аутентификацию пользователя, это, вероятно, не защищает от несанкционированного доступа. Злоумышленник может создать серию одновременных запросов аутентификации вместо быстрой серии последовательных запросов. По крайней мере, с вашей стратегией вы знаете, что они получают только 2400 предположений в день на пользователя. Подумайте о том, чтобы отключить пользователя на более длительный период, чем 5 минут, особенно после того, как он сделает 10 или 15 предположений.
Для параноиков регистрируйте дополнительные данные с каждой неудачной попыткой, такие как IP-адрес, строка пользовательского агента и другие заголовки http в запросе. Возможно, вы сможете определить закономерности в случае реальной атаки.
Подумайте о том, чтобы включить ведение журнала и оповещение соответствующего персонала о том, что пользователь заблокирован.
person
Domino
schedule
16.10.2014