Блог ленивого вебмастера

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

Хочу рассказать о самом простом способе, осложняющем жизнь спамерам и программам ботов, использующим автоматические регистрации на форумах под управлением PHPBB версий 2.x. Естественно, что такой тип защиты срабатывает на тех форумах, где включено визуальное подтверждение, так называемая CAPTCHA.

Многие знают, что стандартная защита от автоматических регистраций на PHPBB 2 легко обходится с помощью использования OCR технологий, используемых программами автопостинга. Попробуем сделать каптчу нестандартной, что может решить проблему, т.к. спамерам проще пройтись по нескольким тысячам незащищенных форумов, чем модифицировать программу, чтобы проспамить несколько нестандартных сайтов.

Находим от корня форума файл /includes/usercp_confirm.php и находим в нем строку $img_width = 0; Если исправить значение $img_width, например на 1 или 2 или -1 или -2, то вместо стандартного изображения получаются вот такие замечательное уродство:


$img_width = 1


$img_width = -1


$img_width = 2


$img_width = -2

которые, надо понимать, еще вполне распознаваемы человеком, но усложняют OCR процесс для ботов. Конечно, значения 2 и -2 это слишком, обычно хватает 1 или -1.

Еще более гибкий способ, заменить строку $img_width = 0; на что-то такое:
$img_width_arr = array(-2, -1, 1, 2);
$img_width = $img_width_arr[rand(0, 3)];
или такое: $img_width = rand(0, 1) == 0 ? -1 : 1;

Данный трюк далек от идеала, но обычно помогает. Предпочтительным же представляется способ, удачно применяемый на rapidshare, когда несколько заготовок captcha с разными экзотическими фонтами и разными подложками выдается пользователю случайным образом

Вернуться в категорию: Немного о дизайне