Как избавиться от спама и убрать Captcha

Автор  Вторник, 22 октября 2019
Оцените материал
(14 голосов)

Не так давно на сайт обрушилось огромное количество спама. Видимо попал в какую-то базу спамеров. Собственными средствами K2 победить не удалось, да и особо правил и запретов в нём нет. Никакая из версий Google Captcha не спасала. Спам проходил на ура. При чём это были скриптовые запросы, потому что у меня поля e-mail и адрес сайта скрыты для ввода, а в базу такой спам попадал с введёнными данными.

Идеально для меня было бы сделать спам-лист (стоп-лист) слов. Чтобы если такие слова содержались в тексте комментария, то они бы просто не опубликовывались. Стал искать способ и наткнулся на интересное решение, добавить в php проверку на эти слова. Правда это решение было для JComments. Попробовал расширение, мне оно понравилось, почему бы не использовать?

  1. Устанавливаем плагин JComments.
  2. Настраиваем его и подключаем к K2.
  3. Импортируем комментарии из K2.
  4. Идём в файл /components/jcomments/jcomments.php
  5. Находим строки:
    if (isset($_REQUEST['jtxf'])) {
    $mystring = JRequest::getVar('comment', '', 'post', 'string');
  6. Исправляем весь блок на:
    if (isset($_REQUEST['jtxf'])) {
    $mystring = JRequest::getVar('comment', '', 'post', 'string');
    if (preg_match("/(СТОП СЛОВО 1|СТОП СЛОВО 2)/i", $mystring)) {echo "OK"; exit;}
    require_once (JCOMMENTS_BASE.'/jcomments.ajax.php');
  7. Вместо фраз "СТОП СЛОВО" указываем необходимые вам.
  8. Через "|" вписываем стоп слова или даже фразы.
  9. Проверяем.
  10. Отключаем Google Captcha.
  11. Настраиваем отображение формы под ваш шаблон.

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

После этого можно смело отключить каптчу и настроить отображение комментариев под ваш шаблон. Недели две у меня ушло на создание такого списка, но теперь я полностью доволен результатом. Можете для проверки как это работает попробовать ввести такие слова как "cialis", "avodart", "prozac" в поле комментария у меня на сайте.

Для удобства на первое время лучше поставить модерацию сообщений и когда появляется время пройтись по спаму и выбрать из них слова. А после уже и отключить модерацию вовсе.

Прочитано 146652 раз

Это интересно

Последние комментарии