Livestreet. Боремся со спамом


Спам - самый натуральный
В последнее время спам становится просто огромной бедой. Вот и молодой и быстро набравший популярность движок Livestreet стал жертвой спамеров. В последнее время, на какой сайт с Livestreet не загляни — везде тонны спамовых топиков, и везде одно и тоже. Судя по всему спамеры по поисковику находят сайты с этим движком, регистрируются на них (возможно даже вручную), а дальше действует бот.

Я решил с этим бороться. Банить по IP — это не наш метод. А наш метод (старый и проверенный): изменить названия полей формы отправки нового топика. Правда для этого нужно не только править файлы темы, но и внедриться в код самого движка.

Что изменяем?
==========================
Что изменять — вопрос на вкус и цвет. Мне показалось удобнее поменять поле заголовка добавляемого топика.

Переименовать можно как вам будет удобнее, я просто дописал к названию немного случайной абракадабры.
Итак, было поле формы topic_title, стало поле topic_title_asdasdasd.

При этом имеем в виду, что в базе данных поле будет называться по-старому.

Правим тему
============================

Исправить свой шаблон — не такое уж вмешательство. Ваш шаблон, делайте, что хотите.

Открываем файл /templates/skin/ваша_тема/actions/ActionTopic/add.tpl и заменяем в нём все строки topic_title на topic_title_asdasdasd. В моей теме это были 4 вхождения в строках 79 и 80:



Правим скрипт обработки формы
=========================================
Открываем /classes/actions/ActionTopic.class.php и находим метод checkTopicFields(), в котором делаем небольшую инъекцию:

/**
* Проверяем есть ли заголовок топика
*/
if (!func_check(getRequest('topic_title_asdasdasd'),'text',2,200)) {
	$this->Message_AddError($this->Lang_Get('topic_create_title_error'),$this->Lang_Get('error'));
	$bOk=false;
}
$_REQUEST['topic_title'] =$_REQUEST['topic_title_asdasdasd'];

Обратите внимание, что после валидации формы мы возвращаем значение подменённого поля в родное. Это нужно чтобы не сломать собственно механизм отправки топика.

Версия движка
==============================

Этот код работает в версии LiveStreet 0.3. Только что скачал версию 0.4, пока не пробовал, хотя код в наших местах выглядит также. Должно работать и там.

Нужно иметь в виду, что в новых версиях код может выглядеть несколько по-иному. Но принцип остаётся тот же.
Так же нужно быть готовым, что это изменение может пропасть при обновлении движка.

Если спам всё ещё проходит
===============================
Хм… Правда??
Чтож, попробуйте изменить вашу абракадабру. Уверен что спамеру скоро надоест подстраивать своего бота индивидуально под каждого пользователя

Livestreet. Боремся со спамом: 3 комментария

  1. Solnca_svet

    Хорошо, но если поменять поля формы, все равно будет достточно легко региться в полуавтоматическом режиме

  2. altesack Автор записи

    Регистрация как раз не затрудняется. Затрудняется потом автоматическая отправка топиков.

Комментарии запрещены.