PHP защита от спамеров - StopForumSpam на примере форума phpBB

logo

email-spam2-300x286.jpg Сей материал является продолжением статьи "Надоела реклама, баннеры, шманнеры? hosts - Блокируем список баннерных, рекламных сетей" и посвящён PHP защите от спамеров для сайтов и форумов. Современное законодательство многих стран расценивает рассылку спама как преступление, в особо тяжких случаях ведущее к крупным штрафам или тюремному заключению виновных.

Как ранее упоминалось Везде должно быть чувство меры и всему должны быть разумные пределы, в том числе и рекламе которая в последнее время просто заполонила все места обитания челов., Итнернет не стал исключением!

PHP защита от спамеров для сайтов и форумов нынче становится очень актуальной темой потому, что в отличии от рекламного спама который уже висит на сайтах и форумах, размещённый по собственной инициативе самого владельца сайта или форума, интернет спемеров (спам ботов) желающих разместить свои мессаги становится всё больше и если с ними не воевать то вскоре сайт или форум превратится в спам свалку доверху набитую одним и тем же гавном и никакая CAPTCHA тут не поможет - спамеры наступают, они нахлабучивают!:)

Врукопашную воевать со спамерами дело утомительное и не благодарное. Многие пытаются блокировать (банить) почтовые адреса спамеров в разных модулях сайта где это возможно, блокировать IP-адреса и их диапазоны с помощью .htaccess но, это так же становится довольно утомительно и мало эффективно. Потому как многие сайты работают на PHP, то многие администраторы сайтов пытаются самостоятельно собрать БД спамеров их ИП и на этой почве замутить PHP защиту от спамеров.

Вы никогда в жизни самостоятельно не соберёте хорошую БД спамеров! Придумывать PHP защиту от спамеров не надо, она уже придумана. В сети есть сервис www.stopforumspam.com который предоставляет гибкий API для построения PHP защиты от спамеров для своего сайта или форума:


Но и тут нам подвезло, нам ненужно писать свой класс PHP API для PHP защиты от спамеров на базе данных www.stopforumspam.com, PHP API класс уже написан:

Только после полного отключения блокировщика скриптов и рекламы на этом месте появится полезная подсказка/ссылка/код/пример конфигурации/etc!

Дело за малым, бери и юзай:)).

Конфигурация PHP защиты от спамеров

Например для построения PHP защиты от спамеров для форума phpBB мы в корне форума создадим структуру директорий с филами:

|--/phpBB
    |--/...
    |--/mainlib // каталог для либ не от phpBB
        |--/StopForumSpam // каталог для либы "StopForumSpam-PHP-Lib"
            |--/log // каталог для .log файла(ов)
                |--index.html // на всяк случай
            |--/tpl // каталог с нашими шаблонами
                |--index.html // на всяк случай
                |--to_spammers.tpl // шаблон с мессагой
            |--.htaccess // для защиты диры от веб доступа
            |--config.php // конфигурация "StopForumSpam-PHP-Lib"
            |--index.html // на всяк случай
            |--README.md // описание класса "StopForumSpam-PHP-Lib"
            |--stopforumspam.php // собственно класс "StopForumSpam-PHP-Lib"
    |--/...

После того как загрузили и распаковали файлы класса (README.md и stopforumspam.php) в каталог /StopForumSpam создаём файл config.php с таким содержимым:

Только после полного отключения блокировщика скриптов и рекламы на этом месте появится полезная подсказка/ссылка/код/пример конфигурации/etc!

В файл spam-log.txt будут записываться ИП адрес, дата и время спамера пытавшегося запросить страницу регистрации. Данные о каждой новой попытке спамера запросить страницу регистрации будут добавляться в конец файла.

В файл шаблона to_spammers.tpl с мессагой для спамеров можно запхнуть что-то примерно такое ОБРАЩЕНИЕ К СПАМЕРАМ! / MESSAGE TO SPAMMERS!:

Обращение к спамерам всех стран и континентов.

Уважаемые Спамеры!

Этим письмом я хочу засвидетельствовать свое почтение и уважение к вашей
нелегкой работе.

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

Я в совершенстве овладел Американским Английским, Американским Албанским и Американским Украинским языками, посетил все предложенные бизнес-семинары и обладаю высшим посвящением в девяти церквях.

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

Я получил такие значительные скидки на программное обеспечение, что
практически целиком прибрал к рукам это направление в бизнесе.

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

Все барахло я вывожу в свои африканские страны, и в этом мне помогают
рекомендованные Вами ГРУЗЧИКИ.

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

Как видите, я - верный, постоянный и оптовый ваш клиент. Я никогда не спорю, я делаю все, что вы мне советуете. Не могу ли я, учитывая свой теперешний статус, попросить и вас о небольшой ответной услуге? Дело в том, что на протяжении полугода я не получил от вас ничего нового. Все, что вы мне предложили за последние 6 месяцев, у меня уже есть.

Напомню, что мой член увеличен (благодаря вам) до полутора метров, причем в спокойном состоянии! При этом, учтите, что всю предлагаемую вами "виагру" я приобрел и сохранил.

Теперь главное, о моей просьбе: СПАМЕРЫ, ИДИТЕ НАХ..!

В .htaccess как обычно вписываем Deny from all.

Подключение PHP защиты от спамеров к форуму phpBB

Подключать PHP защиту от спамеров ко всему форуму нежелательно, лучше это сделать в тех местах где это будет более оправдано например в скрипт регистрации или комментариев. Подключение нашей PHP защиты от спамеров к форуму не составит особого труда, в нашем случае мы в корне форума phpBB находим и открываем ucp.php и подключаем туда наш config.php:

<?php 
require_once('mainlib/StopForumSpam/config.php');
/**
*
* @package ucp
* @version $Id$
* @copyright (c) 2005 phpBB Group
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
*
*/

Если заметили в config.php есть переменные $email и $remoteIP которые можно использовать в шаблоне. Использовать свой почтовый адрес как есть не рекомендуется, лучше его как-то скрывать. Боты как правило стилями оформления не пользуются и в связи с этим мы например можем перевернуть строку с помощью $email = strrev("my@email.ru"); и корректно отобразить её с помощью style="unicode-bidi: bidi-override; direction: rtl;":

<?php 
$email = strrev("my@email.ru");
?>
<span style="unicode-bidi: bidi-override; direction: rtl;">
    <?php echo $email; ?></span>

Но я предпочитаю со спамерами не связываться и дополнительной информации им не предоставлять!:)) Вот и всё "любі друзі", вот мы и замутили PHP защиту от спамеров для нашего phpBB форума на БД StopForumSpam, а если нет возможности использовать на хосте сетевые РНР функции, то можно скачать БД спамеров с StopForumSpam и расширить РНР класс замутив РНР функцию проверки пришедшего юзера локально, что разумеется скажется на РНР производительности но, об этом как-нибудь в другой раз...

Автор: Олег Головский

Рекомендуемый контент

Комментарии   

Adminco
0 #5 Adminco 26.11.2012 17:47
Вроде помогает )
Цитировать
Titan ogame
0 #4 Titan ogame 27.10.2012 14:54
Спасибо, наконец то я уже неделю не знаю что такое спам на форуме и выгребание этого говна
Цитировать
Stranger
0 #3 Stranger 05.06.2012 21:58
ха-ха... видимо кто-то уже просёк эту тему и решил замутить платный сервис типа "защита сайтов от спама" - cleantalk.ru

:lol: токо нафиго ж платить когда есть такая замечательная инструкция!
Цитировать
АдМинь БагоИскатель
0 #2 АдМинь БагоИскатель 04.06.2012 11:45
Можно слегка дополнить установкой часового пояса, имхо реальное время попыток регистрации спамера на сервере может отличатся от реального времени попытки регистрации в твоём часовом поясе!:
Цитата:
// Установка часового пояса если используется РНР выше 5.1
// В РНР выше 5.3 не установка часового пояса при использовании
// функции date() повлечёт ошибку:
//    Severity: Warning
//    Message: date(): It is not safe to rely on the system's
//    timezone settings. You are *required* to use the date.timezone
//    setting or the date_default_timezone_set() function. ....
if(@!date_default_timezone_set('Europe/Kiev'))
{
    @ini_set('date.timezone', 'Europe/Kiev');
}
Полный список поддерживаемых часовых поясов (timezone) смотреть на: http://php.net/manual/ru/timezones.php
Цитировать
Spam Warrior
+1 #1 Spam Warrior 31.05.2012 02:06
;-) Автору респект! Просто супер секель для спамеров. В логах по 10-20 отрубленных спамеров, а на форуме тишь да благодать. До этого каждый день выметал спамеров и ни что против них не спасало, а ни каптча, а ни смена вопроса-ответа.

;-) Ещё раз автору респект!
Цитировать

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

АХТУНГ! Все комменты модерасятся модерастом. Мессаги исключительно рекламного или оскорбительного содержания не публикуются, а поэтому злостным спамерам, пранкерам и прочей сетевой нечисти рекомендуем напрасно не тратить своего времени и удовлетворять свои больные фантазии на специализированных Интернет ресурсах! Разумная же критика, замечания, дополнения и хвалебные оды приветствуются, также допускается легкий флуд или троллинг :)


Защитный код
Обновить

Новое на форуме