расставляй правильно приоритеты и не отвлекайся на мелочи

Защищаем PHPBB от спама и ботов или как изменить стандартное визуальное подтверждение (captcha) в 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 с разными экзотическими фонтами и разными подложками выдается пользователю случайным образом.

13 апреля 2007, добавлен полезный источник по данной теме

Рекомендую прочесть:
Preventing SPAM — Bots and Humans

16 комментариев на статью:
  1. Алиса:

    Последнее время все сложнее защититься от спама и авто регистраций, замена стандартной капчи немного помогает, спасибо большое за ваш совет.

  2. bridennis:

    Рад, что смог чем-то помочь. Советую перейти на phpBB3, если есть возможность, там капча на порядок лучше.

  3. OldRaven:

    Спасибо. Простой и действенный метод. :)

  4. Владимир:

    Давно хотел найти способ борьбы с этими ботами!

  5. ИНФОРУС:

    Благодарю за этот легкий метод борьбы со спамом на форуме.
    Использовав сначала мод по массовому удалению зарегистрированных спамеров, удалось бысто избавиться от более, чем 12 тысяч зарегистрировнных пользователей-спамеров, а потом Ваш, теперь на форуме совсем чисто.
    Однако е-майл адреса этих проказников сохранились в скаченной базе. Что бы можно было бы с ними сделать? Какие идеи?

  6. admin:

    Рад, что кому-то помог. Насчет имейл адресов идей нет :( я бы оставил, до других времен.

  7. Полина:

    Интересная новость, спасибо ;) ….

  8. root:

    При установке $img_width в значение отличное от 0 в ИЕ-6 капча не отображается вообще. А в Опере полный порядок.
    Чуть мозг не сломал.

  9. Александр:

    Как сделать та чтоб при отправке сообщения на форуме запрашивался секретный(случайный) код без запроса «ИМЯ» и «ПАРОЛЬ»
    сайт стоит на PHP (phpBB)очень нужна ваша помщь. Или как ещё можно сделать, чтоб гости могли общаться на форум (без регистрации) но была защита от спама.
    Я на вас очень рассчитываю. Большое спасибо за помощь.

  10. admin:

    Полноценно, … думаю никак, все-равно в итоге устроят помойку из сообщений и линков и никакие спаморезалки и псевдозащиты не помогут, не зря люди продают за деньги всякие там Хрумеры и AllSubmiter’ы.
    Поэтому — либо полноценная регистрация, либо быть готовым к массовому спаму.

  11. DiSel:

    Александр, быстро вряд ли получится. Но можно — только придётся менять код отправки сообщения и шаблоны. А суть такая же: генерировать и вставлять код капчи (фрагмент можно взять из регистрации) при загрузке формы сообщения для гостя. В posting, соотв-но, проверять соответствие кода. В БД изменений никаких не требуется. Единственный момент — чтобы с сессиями юзеров порядок был, а то есть один мод (удаление дублирующих сессий), который добавляет косяки с регистрацией.
    Вышеописанное сам ещё не внедрял, пока без этого защита работает, но если что — тоже попробую.

  12. Наталья:

    все заменила, как сказано, но картинку все равно выдает прямую…

  13. Наталья:

    Подскажите, при переходе на phpbb3 с 2 можно БД перетащить из старой — имеющиеся сообщения сохранить очень важно?

  14. admin:

    Нет ничего невозможного, но в каждом случае необходимо разбираться отдельно (дополнительные моды и .т.п.).
    100% рабочих конвертеров на все «случаи жизни» я не встречал, не было необходимости.

  15. Дмитрий:

    Все сделал по простому -1. Перестали появляться левые регистрации. А то до 800 пользователей дошло и спама валом было. Теперь все тихо. Спасибо огромное за совет!!!

  16. Денис:

    Еще есть сервисы защиты от спама — Akismet, Mollom и Клинтолк. Плюсы в том, что живые люди комментируют сообщения без капчи и ожидания ответа от модератора + сервисы коммерческие, т.е. борются с автоматическим спамом не на шутку, а в серьез :)

Ответить
Обязательные поля помечены *