Фиксировать будем в файлы темповой директории. На каждый логин — свой файл. Частота попыток определяется через разницу текущего времени и времени последней правки файла. Правим файл ActionLogin.class.php, функция EventAjaxLogin:
* Если наш юзер существует, то проверяем разницу между попытками авторизации
$oFName=Config::Get('sys.cache.dir').'login_log-'.$oUser->getLogin().'.txt';
if(file_exists($oFName) && 3>=(time()-filemtime($oFName)))
{
$this->Message_AddErrorSingle("Sorry, please wait 3 seconds and try again!");
return;
}
* Если авторизация не прошла, то фиксируем время, ip, ошибочный пароль (лишнее убрать):
$oFile=fopen($oFName,'a');
if($oFile)
{
fwrite($oFile, date ( DATE_ISO8601, time() ).'['.func_getIp().']='.getRequest('password')."\n" );
fclose($oFile);
}
Замечания и предложения приветствуются!