Search
Write a publication
Pull to refresh

Финт ушами, или еще ода защита LiveStreet от спама

Здравствуй, %username%.

Сегодня я поделюсь с тобой еще одним способом защитить твой 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).

Из отрицательных сторон этого способа вижу, что некий счастливчик может умудриться попасть на смену дат и у него не получится зарегистрироваться.
Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.