Authlogic имеет модуль Authlogic :: Session :: BruteForceProtection (вы можете узнать, как он реализован здесь ). По сути, он блокирует учетную запись после N неудачных входов в систему. Из документации :
По умолчанию
consecutive_failed_logins_limit
опция конфигурации установлена на 50, если
кто-то последовательно не может войти в систему
после 50 попыток их аккаунт будет
быть приостановлено. Это очень либерально
номер и на данный момент это должно быть
Очевидно, что что-то не так.
Если вы хотите уменьшить это число просто
установить конфигурацию ниже
номер:
class UserSession < Authlogic::Session::Base
consecutive_failed_logins_limit 10
end
Чтобы включить это поле,
модель ДОЛЖНА иметь значение failed_login_count
(целое) поле.
Вы можете активировать этот модуль и добавить свой механизм капчи в контроллер.
Позднее редактирование : Я только что видел часть «с того же IP».
Если вам нужна защита «с того же IP» (я полагаю, вы имеете в виду, что злоумышленник не заинтересован в конкретной учетной записи, поэтому цель состоит не в взломе конкретной учетной записи, а в атаке DOS * 1025). *), то, по моему мнению, этого делать не следует (сервер приложений rails). Это должно быть обработано вашим системным администратором на внешнем (прокси) сервере.