Я ищу пакет или способ подсчета попыток входа пользователя в систему (я использую FosUserBundle)
Я пробовал CCDN SecurityBundle, но он уже устарел (требуется Symfony 2.4).
Существуют ли другие стабильные пакеты или способы решения моей проблемы?
Предложение KEK вообще не использует Symfony. Вы могли бы переопределение failure_handler
в вашей конфигурации безопасности и создайте сервис, который будет вызываться, затем найдите пользователя и добавьте к его числу неудачных попыток, сохранив его в сеансе или в базе данных напрямую.
Используя этот метод, вы также захотите переопределить обработчик успешных входов в систему, чтобы при успешном входе пользователя вы сбрасывали количество неудачных попыток входа в систему на 0 в сеансе, который вы использовали, или в базе данных.
Сохраните это в $_SESSION
с отметками времени и количеством попыток. Увеличьте количество попыток после каждого неудачного входа в систему и очистите его при успехе.
Создайте таблицу базы данных для login_attempts
, Он должен содержать как минимум пару столбцов для идентификации пользователей (например, ip_address
а также user_agent
или что-нибудь еще, чтобы определить его уникальность) и столбец для количества попыток входа в систему (int).
Каждый раз, когда пользователь пытается войти, увеличивайте amount_login_attempts
, После успешного входа в систему сбросьте счетчик на 0.
sleep()
так как это использует ресурсы сервера