Здравствуй, %username%.
Сегодня я поделюсь с тобой еще одним способом защитить твой LiveStreet от ботов. Способ заключается в генерации имен полей формы абсолютно не гуманоидного вида и изменяющиеся каждый день.
Для этого нам потребуется модификация двух файлов.
Для начала открываем файл темы actions/ActionRegistration/index.tpl и находим там к примеру строку:
Сохраняем и открываем другой файл который находится от корня сайта по пути classes/actions/ActionRegistration.class.php в котором ищем следующий текст:
Данное действие можно совершить со всеми полями формы, что в принципе должно дать более положительный результат.
Дополнительно можно усечь длину имени поля до 5 символов со сдвигом используя substr(md5('captcha'.date('Y-m-d')), 4, 5).
Из отрицательных сторон этого способа вижу, что некий счастливчик может умудриться попасть на смену дат и у него не получится зарегистрироваться.
Сегодня я поделюсь с тобой еще одним способом защитить твой LiveStreet от ботов. Способ заключается в генерации имен полей формы абсолютно не гуманоидного вида и изменяющиеся каждый день.
Для этого нам потребуется модификация двух файлов.
Для начала открываем файл темы actions/ActionRegistration/index.tpl и находим там к примеру строку:
input tabindex="5" type="text" name="captcha" value="" maxlength="3" class="input-text input-100"
И изменяем ее на:input tabindex="5" type="text" name="{php}echo md5('captcha'.date('Y-m-d')){/php}" value="" maxlength="3" class="input-text input-100"
Сохраняем и открываем другой файл который находится от корня сайта по пути classes/actions/ActionRegistration.class.php в котором ищем следующий текст:
/**
* Проверка капчи(циферки с картинки)
*/
if (!isset($_SESSION['captcha_keystring']) or $_SESSION['captcha_keystring']!=strtolower(getRequest('captcha'))) {
$this->Message_AddError($this->Lang_Get('registration_captcha_error'),$this->Lang_Get('error'));
$bError=true;
}
Делаем в нем изменения:/**
* Проверка капчи(циферки с картинки)
*/
if (!isset($_SESSION['captcha_keystring']) or $_SESSION['captcha_keystring']!=strtolower(getRequest(md5('captcha'.date('Y-m-d'))))) {
$this->Message_AddError($this->Lang_Get('registration_captcha_error'),$this->Lang_Get('error'));
$bError=true;
}
Данное действие можно совершить со всеми полями формы, что в принципе должно дать более положительный результат.
Дополнительно можно усечь длину имени поля до 5 символов со сдвигом используя substr(md5('captcha'.date('Y-m-d')), 4, 5).
Из отрицательных сторон этого способа вижу, что некий счастливчик может умудриться попасть на смену дат и у него не получится зарегистрироваться.