Main > phpBB > Избавляемся от спама на форумах phpBB

Избавляемся от спама на форумах phpBB

27.11.2018 0 comments » Views: 729

Ты не пройдешь

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

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

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

Я написал javascript который после получения фокуса полем email, подменял его на другое поле. Дальше проверял пришло ли мое поле, на стороне сервера и если оно не пришло, то решал что это робот.

В файле: www/styles/prosilver/template/ucp_register.html, в конец файла, после формы, но перед

добавляем такой скрипт

Если присмотреться, то вы заметите, что при получении фокуса полем email (L на конце), создается поле emai1 (Единица на конце) и оригинальное поле подменяется на него.

Далее, в файле www/ucp.php в самое начало я добавил проверку

Тут проверяется следующее, если была попытка регистрации, то проверяется наличие поля $_POST['emai1'] (Единица на конце) и если оно пришло, то его содержимое копируется в оригинальную переменную $_POST['email'] (L на конце). В противном случае, скрипт очищает любые данные переданные в $_POST['email'].

Усложнять сильнее можно развивая эту идею, но я не стал этого делать, т.к. только это отсеяло всех авто-ботов.

В коде выше вы можете увидеть закомментированную строку с подключением файла disable-cache.php, вот его содержимое

Его смысл, в том, чтобы в момент отладки при каждой перезагрузки страницы очищать кеш файлов шаблонов. Если будете использовать мой код, то вам его не надо подключать. Если будете модернизировать js-код в шаблоне, то помните, что шаблоны кешируются шаблонизатором и в момент отладки, надо чистить кеш. Сделать это можно или руками, или с помощью подключения этого файла.

Теперь, вернемся к тому, что же делать со спамом который постят вручную. Способов достаточно много, я выбрал способ с быстрым оповещением о любой активности на форуме, чтобы моментально узнавать не только о спаме, но и том что кто-то просит поддержки. Написал такой скрипт:

Этот код надо сохранить в какую-нибудь отдельную папку, напримеру www/notifier/cron.php и добавить в Cron, на запуск каждые 15 минут. В результате на указанный email будт приходить в виде писем все опубликованные посты. Это позволяет видеть сразу что и в каком форуме опубликовали и вовремя отреагировать - дать ответ или забанить спамера. Для форумов у которых очень много ежедневных сообщений это всего скорее не подойдет, в таком виде, надо дописать и ввести какие-нибудь ограничения. А вот для небольших сообществ с одним можератором будет самое то.

P.S. Весь описанный в этой статье код был актуален для phpBB 3.1.9, в новых версиях код возможно потребует актуализации.

 

 

 

Author: | Rating: 4/5 | Tags:

Leave a Reply

Your email address will not be published. Required fields are marked *

Allowed HTML-tags: <a>, <code>, <i>, <em>, <strong>, <b>, <u>, <strike>