Веб студия, разработка web сайтов, дизайн   Разработка сайтов в Челябинске. Веб-студия Домашние картинки
Веб-дизайн в Челябинске
Защита форума phpBB

Форум phpBB один из самых старых и самых распространенных бесплатных форумов в интернете. Он достаточно прост в настройках и легок в освоении как модераторами форума, так и посетителями. Форум достаточно малотребователен к ресурсам веб-сервера и покрывает потребности 99% всех сайтов.

Бесплатность и распространненость форума сыграла с ним злую шутку, сделав его одной из основных целей спамеров и различного рода "оптимизаторов", стремящихся "пропиарить" свои сайты на немодерируемых форумах и заставляющих модераторов тоннами выгребать аккаунты, созданные роботами. Разработчики форума вроде предусмотрели эту возможность и ввели в последних версиях форума регистрацию с подтверждением графическим кодом (каптчей, captcha). К сожалению и этот графический код достаточно простой и легко распознается специальными программами. Изменение этого графического кода (изменение шрифта, фона и т.п.) в движке форума не предусмотрено, т.к. он фактически зашит в скрипт. И все же есть выход, позволяющих затруднить спамерам жизнь (сейчас мы подразумеваем полностью автоматическую регистрацию, когда заполнение поля кода проводит программа, а не вводит человек). Надо подменить код, выдаваемый движком форума, на наш код.

Сделать свою каптчу очень просто, если в php установлена графическая библиотека GD. К счастью она очень широко распространена. Для этого вставляем в файл includes/usercp_confirm.php после строк

// If we have a row then grab data else create a new id
if ($row = $db->sql_fetchrow($result))
{
	$db->sql_freeresult($result);
	$code = $row['code'];
}
else
{
	exit;
}

следующий код

header ("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header ("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header ("Cache-Control: no-cache, must-revalidate");
header ("Pragma: no-cache");
srand(time());
$im = @ImageCreateFromPng (dirname(__FILE__).'/rnumberfon.png');
$text_color = ImageColorAllocate ($im, 255, 255, 64);
$font = imageloadfont(dirname(__FILE__).'/AllegroBT.phpfont');
$W = imagesx($im);
$H = imagesy($im);
$h = imagefontheight($font);
$w = imagefontwidth ($font);
$l = strlen($code);
$x = ($W/$l-$w)/2;
for($i=0; $i<$l; $i++){
  $y = rand(0, $H-$h-1);
  $n = $code{$i};
  ImageString ($im, $font, $x, $y, $n, $text_color);
  $x += ($W/$l);
}
ImagePng ($im);
exit;

Что нам нужно еще? Нам нужны

  • Файл rnumberfon.png - обычный PNG файл, который является фоном, размером примерно 150x40 пикселов (размер подбирается, исходя их размера шрифта).
  • Файл шрифта AllegroBT.phpfont. Файл генерируется из шрифтов, установленных в Windows программой PHP Font Editor.

Имена файлов естественно могут быть названы, как вам удобно. Загрузить их нужно в каталог форума includes.

Все – ваша каптча для форума phpBB готова!

Что можно еще изменить? Немного поколдовав над кодом, можно

  • создать несколько файлов фонов и несколько файлов шрифтов и выбирать их случайным образом, тогда комбинация "фон-шрифт" будет случайная, что затруднит роботу работу;
  • можно самим генерировать случайный фон, используя библиотеку GD (функции imagecreate и imagecreatetruecolor);
  • использовать настоящие TTF шрифты (функция imagettftext);
  • использовать разный цвет шрифта кода (будьте уверены, что код достаточно различим поверх фоновой картинки).

Надеемся, что наши рекомендации помогут вам с борьбе со спамерами.

Ссылки по теме:

Модифицированная капча (продолжение статьи)

Защита PHPBB от спам-ботов путем изменения каптчи

Защита от спама в форумах phpBB2

Защищаем PHPBB от спама и ботов или как изменить стандартное визуальное подтверждение (captcha) в PHPBB

Обсуждение на официальном форуме phpBB. Preventing SPAM - Bots and Humans (на английском языке)

Смотрите также
Оценка страницы: 5.0
Голосов: 22
Комментарии  
  1. Александр / 11.03.2008 15:02:49
    А у меня не работает почему-то(
  2. Сергей / 11.03.2008 16:03:01
    Александр, подробнее проблему можете описать?
    Что конкретно не работает? Какие ошибки выдает?
  3. Алексей / 05.08.2008 00:08:14
    includes/usercp_confirm.php - такого файла нет в данной категории и даже на всем форуме, более того указанных строк тоже нет во всех вайлах на всем форуме. У меня стоит phpBB2. Можете что либо по этому форуму подсказать?
  4. Сергей / 05.08.2008 08:12:30
    Алексей, какой адрес форума (сайта)?
  5. Steam / 05.03.2009 17:50:10
    Установил. Всё норм. пол часа, полет нормальный. Не одного бота пока :))
  6. Виталий / 29.03.2009 00:55:17
    Все работает! Спасибо вам большое!
  7. Максим Негодов / 15.09.2009 11:00:12
    Спасибо! Уже второй день нет левых регистраций.
  8. stopkran / 20.01.2010 10:31:40
    Роботы тоже совершенствуются. Надёжнее защищать форум от спама с помощью генерации элементов формы на стороне клиента (DOM-javascript). Подробнее описано в статье http://ir2.ru/dhtml4spam.aspx.
  9. Олег / 19.11.2010 13:30:12
    А как вот эти файлики делать rnumberfon.png и AllegroBT.phpfont и что в них писать? А то я непонимайн. Это мой первый форум и его так уработали боты что легче оказалось просто его снести. Помогите! Мой майл: oleggrin84@mail.ru
  10. Олег / 19.11.2010 13:33:33
    и ещё аська:597378590
  11. Денис / 22.03.2011 20:55:41
    Коллеги, не сочтите за рекламу, могу предложить специальный мод для защиты от спама.

    Принцип работы следующий, рекламные сообщения определяются по ссылкам, имайлам и телефонам, оскорбления по стопсловам, офтоп по соотвествию сообщения теме топика и первому сообщению в топике.

    Если сообщение одобренно, то оно сразу попадает в топик (если не включенна премодерация), если не одобренно, то ждет модератора.

    Мод можно скачать по ссылке http://cleantalk.ru/files/phpbb3-cleantalk-1.2.zip.
  12. sweb27 / 08.10.2011 17:43:05
    Работает пока..значит спамеры пока не придумали лазейку.
    ____________
    http://турист27.рф
  13. ddgod / 10.11.2011 19:39:28
    Сижу на сервисе форумов и не парюсь
    Спамров вообще нет, хоть и форуму уже 3 года
    ____________
    http://4admins.ru
© HomePictures.RU
Rambler's Top100

Защита форума phpBB

Карта сайта | Контакты © 2006-2012 HomePictures.RU 
веб-студия, разработка web сайтов, дизайн