Модуль Антиспам

Эксклюзивная система защиты Доски Объявлений от спамеров. Система контрольных вопросов-ответов способна остановить даже ручной спам. Возможность использовать регулярные выражения, для блокирования опасных слов такие как амфетамин, наркотик и тд. Из за подобных объявлений мой сайт уже неоднократно блокировался хостингом.AntiSpam-setup

  • Комментарии – в тексте можно использовать комментарии, однострочный // и многострочный
    /* закомментировано
    много текста
    */
    C помощью комментариев можно легко отключить часть текста из обработки при этом, не удаляя его.
  • Цифровой отпечаток – берем текст и удаляем из него все символы, включая пробелы, знаки препинания, перевод строки и т.д. Оставляем только цифры!
  • /*AUTO_BLOCK … */ – здесь хранятся данные автоблокировок, чтобы сбросить все автоблокировки достаточно удалить этот блок комментариев.
  • Блокировка по вхождению строки. Этот текст разбивается построчно в массив, каждая строка патерн (шаблон) – то, что мы будем искать. Далее берем все поля, которые нам пришли из формы ввода: заголовок, текст, телефоны, емаел и т.д. Каждые патерн прогоняется по всем поля и ищем совпадение. Если совпадение найдено, выдаем ошибку, продолжаем искать дальше. Патерны могут быть:
    • Цифровой, блокировка телефонов В каждой строке пишем номер телефона – только цифры, например заблокировать телефон +380682542635 – код страны писать не нужно оставляем только 0682542635. Если в патерн содержит только цифры, то для всех полей, из формы ввода, будет дополнительно создан цифровой отпечаток и искать совпадение будем, как в самом поле, так и в его отпечатке. Поэтому даже если найдется какой-то умник и попытается пропихнуть свой телефон в заголовке в таком виде: 068 и 254 плюс 26 и 35 у него все равно ничего не выйдет. Надо быть осторожным, если вы хотите блокировать телефон с коротким номером (4-5 цифр) – не исключено случайное совпадение с цифровым отпечатком.
    • Обычная строка, блокировка строки например заблокировать текст с фрагментом домена:
      mysate.com.ua
      или заблокировать текст со словом:
      срочно
      Поиск использует функцию mb_stristr не чувствителен к регистру и найдет все варианты срочно, Срочно, СРОЧНО ….
    • Регулярное выражение – если патерн начинается символом ~ он трактуется как регулярное выражение. Например заблокируем все варианты такого опасного слова как амфетамин, из-за которого мои сайты уже не раз получали предупреждение от раскомнадзора и даже блокировались хостингом. Патерн будет такой:
      ~амфетамин[а-я]*~u
      – найдет все варианты амфетамин, амфетаминами, амфетамины и тд. В принципе для такого простого примера можно использовать блокировку обычной строки задав только корень слова амфетамин, он также найдет все выше перечисленные вхождения. Вообще, старайтесь использовать простой поиск – он работает быстрее. Синтаксис регулярных выражений изучайте самостоятельно – слишком обширная тема.
  • Блокировка IP Пишем каждый IP или диапазон IP в отдельной строке. Пример заблокировать IP:
    123.45.65.78
    заблокировать диапазон IP:
    123.45.65.0/120
  • Автоблокировка 2 видов:
    1. Новые объявления – отслеживаем время между новыми объявлениями, как только пользователь создал новое объявление, его телефоны и IP записывается в блок AUTO_BLOCK соответственно, устанавливается время создания. Следующее новое объявление пользователь с такими телефонами и IP сможет создать только по истечению ==Интервал между новыми сообщениями== задается в админке.
    2. Контрольные вопросы-ответы это возможность вместо обычной капчи использовать нарисованы вопросы и варианты ответов. Для этого необходимо в админке:
      1. установить галочку ==Контрольные вопросы – ответы==,
      2. затем обязательно задать Шифр-ключ (любой набор символов),
      3. установить =Количество неудачных ответов перед блокировкой пользователя=,
      4. установить ==Время блокировки== – время на которое пользователь будет блокирован если он, все таки, не сможет ответить на контрольный вопрос.

      Далее написать список этих самых вопросов-ответов. Формат простой, построчно пишем:

      • Вопрос
      • правильный ответ
      • неправильный ответ 1
      • неправильный ответ 2
      • неправильный ответ 3
      • и т.д.

      Если текст слишком большой и надо выполнить перенос строки вставляем ‹br›.
      Блоки вопросов разделяются пустой строкой.

      *Вопросы и ответы я придумал, чтобы ограничить поток рекламных объявлений на городской доске объявлений Ильичевск. Вопросы предполагают минимальное знание города: расположение объектов, известных людей города и другие специфические вопросы. Например вопрос – Известный бизнесмен нашего города – далее список фамилий или Самый большой базар нашего города. Для того, чтобы ответить на эти вопросы не достаточно посмотреть goole map или почитать новости интернет, надо просто быть жителем города :).

    3. Формула в качестве контрольных вопросов можно использовать простую математическую формулу, для этого надо включить галочку ==Включить формулу==
    4. Алгоритм блокировки – если пользователь не смог ответить заданное число раз на контрольный вопрос, все его телефоны + IP адрес записываются в блок AUTO_BLOCK и соответственно блокируются. Через время указанное выше телефоны и IP будут автоматически разблокированы. в AUTO_BLOCK формат записи такой:
      065065065//2//4//2014-06-17 08:37:10//2014-06-18 16:57:59
      в качестве разделителя параметров используется двойной слеш // (как комментарии)

      • 065065065 – телефон
      • 2 – юзер 2 раза ответил на контрольный вопрос неправильно по истечению времени блокировки этот параметр сбрасывается в ноль
      • 4 – всего неправильных ответов, не сбрасывается
      • 2014-06-17 08:37:10 – время последнего неправильного ответа
      • 2014-06-18 16:57:59 – время последнего нового сообщения

      Чтобы разблокировать отдельный телефон или IP нужно просто удалить соответствующие строки из AUTO_BLOCK или сбросить в ноль второй параметр.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url=""> [php]…[/php] [html]…[/html] [css]…[/css] [text]…[/text] [code]…[/code]

  • sdfsdfsdf
  • sdfsdfsdfsdf
  • sdfsdfsdfs
  • sdfsdfsdf
  • sdfsdfsdfsdfs
  • sdfsdfsdfs
  • sdfsdfsdf
  • sdfsdfsdfsdfs