Форум 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;
Что нам нужно еще? Нам нужны
Имена файлов естественно могут быть названы, как вам удобно. Загрузить их нужно в каталог форума includes.
Все ваша каптча для форума phpBB готова!
Что можно еще изменить? Немного поколдовав над кодом, можно
Надеемся, что наши рекомендации помогут вам с борьбе со спамерами.
Ссылки по теме:
Модифицированная капча (продолжение статьи)
Обсуждение на официальном форуме phpBB. Preventing SPAM - Bots and Humans (на английском языке)