Как я могу заставить пользователя заполнить капчу после определенного количества неудачных попыток входа в систему с authlogic? - PullRequest
3 голосов
/ 11 июня 2010

Я пытаюсь обезопасить свое приложение rails 3 от перебора логина.Я использую authlogic .Какой лучший способ заставить пользователя (или бота) заполнить капчу после определенного количества неудачных попыток входа?Есть ли у authlogic встроенный механизм для записи, сколько последовательных неудачных попыток было получено с одного и того же ip?Буду признателен за любую помощь.

1 Ответ

1 голос
/ 11 июня 2010

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). Это должно быть обработано вашим системным администратором на внешнем (прокси) сервере.

...