Решение проблемы спама на Drupal при помощи модуля Trigger.

Со времён установки капчи при регистрации и комментировании анонимными пользователями количество спама на Drupal значительно уменьшилось. Однако, кое-что всё же проходит. Причём спам идёт не от незарегистрированных пользователей (что удивительно), а от не поленившихся зарегистрироваться. Наверняка некоторые уже видели появляющиеся комментарии к абсолютно любым записям примерно такого содержания: «Отличный пост, у вас замечательный сайт. Я тоже хочу создать свой сайт. Подскажите, как это можно сделать. Бла, бла, бла… Извините, если я нарушила (обязательно с окончанием (а), типо под дурочку косят) какие то правила, я ведь только учусь».

Простой пользователь ничего не заметит, и смилуется над бедной девочкой, может даже дать ей какую-нибудь ссылку на какой-нибудь ucoz с рекомендациями создать сайт там (как это было совсем недавно). Но я, зная такие ухищрения, никогда не поленюсь заглянуть в тело сообщения (нажатием кнопки редактирования комментария), и как ни странно, всегда обнаруживаю там скрытую ссылку без анкора, вроде такой: <a href=”http://site.ru”> </a>. Нет, я не против ссылок вообще, но, ссылка должна быть в тему (как и сам комментарий), а не на какой-нибудь варезник, да ещё и с попыткой обмануть меня.

Теперь о способе борьбы с таким безобразием.

Вообще Trigger – это модуль, способный на очень многое, но, сегодня он будет спасать меня от спама в комментариях. Модуль Trigger есть в стандартном наборе Drupal'а, искать и устанавливать его не нужно. При необходимости придётся лишь активировать его. Правда, решение совсем не универсальное, и применимо лишь для конкретных случаев.

Алгоритм достаточно прост: при публикации пользователем комментария текст проверяется на наличие определённой последовательности символов (к примеру: ”> </а>), характерной для пустой ссылки, и при её наличии снимается с публикации и отправляется на модерацию.

Итак, что мы делаем:

  1. Идём на страницу «Действия» (/admin/settings/actions/manage). Внизу страницы есть форма создания сложного действия (не пугайтесь слова «сложного»). Выбираем «Снять с публикации комментарий, содержащий слова» и нажимаем «Создать». Попадаем на страницу настройки действия.
  2. Тут мы можем задать действию уникальное имя (что я настоятельно рекомендую сделать, чтобы потом не мучиться), к примеру «Проверка на скрытые ссылки». В нижнее поле вводим через запятую последовательности символов характерные для скрытых комментариев. Вводим: '></a>, '> </a>, '></A>, '> </A>

    Можно бы было написать без кавычки, но, тогда под фильтр попадают картинки со ссылками. Сохраняем.

  3. Далее идём на страницу «Триггеры» в раздел «Комментарии» (/admin/build/trigger/comment). В пункте «После сохранения или обновления комментария» выбираем наше заготовленное действие и нажимаем кнопку «Назначить».

Вот и всё, триггер настроен. Теперь все сообщения с такой последовательностью символов будет отправляться на модерацию. Метод не универсальный, но теперь Вы знаете, как избавиться от нецензурной лексики в комментариях, поступая аналогичным образом.

Раздел: