Защита форума phpBB от авторегистраций

23rd Март 2012 | Категории: PHP | Метки: , ,

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

Картинку можно спрятать несколькими способами. На ум приходит:

— Генерация HTMLконтента по средством javascript:
боты редко могут обработать js-код, поэтому картинку с кодом они не получат. Стоит отметить, что это довольно-таки сложное решение, ввиду того, что нужно переписать полностью несколько страниц кода.

— Подгрузка Картинки через ajax:
боты редко могут обработать js-код. Это решение проще, чем первое. Но и обходится ботами легче.

— Оборачивание картинки в фрейм (iframe):
боты не обрабатывают фреймы. Самое простое решение, требующее добавления всего пары тегов!

Давайте сразу расставим все точки над i. Если у вас большой и популярный ресурс, то ожидайте ботов, адаптированных под вашу защиту. Придется комбинировать сразу несколько способов защиты. Если же у вас небольшой форум, то никто затачиваться под него не будет. И подойдет даже самая простая защита.

Итак. Мы будем защищать картинку через фрейм. Для этого необходимо:

0. Зайти под администратором в раздел Общие -> Конфигурация -> Средства против спам-ботов. Выбираем «простая картинка»

Выбор простой каптчи

1. Найти каталог со стилями темы (достаточно проделать все манипуляции для той темы, которая отображается в момент регистрации). У меня установлена тема Hestia Blue. Файлы темы находятся тут: /fuel-php.ru/public_html/styles/hestia_blue/template

2. Найти файл, отвечающий за генерацию капчи. За «простую картинку» отвечает файл captcha_default.html. В зависимости от темы структура кода может меняться. Нам надо найти константу {CONFIRM_IMAGE_LINK}.

3. Отредактировать его, добавив теги фрейма.

Было:

<img src="{CONFIRM_IMAGE_LINK}" alt="{L_CONFIRM_CODE}" />

Стало:

<iframe src="{CONFIRM_IMAGE_LINK}"></iframe>

Если необходимо более красивое решение (убрать рамку вокруг фрейма), то можно настроить фрейм:

<iframe src="{CONFIRM_IMAGE_LINK}" width=320 height=50 frameborder=0></iframe>

примечание: даже при указании размеров фрейма некоторые браимают его (замечено в FF10), хотя картинка с кодом остается читабельной.

Сжатие фрейма в браузере FF

Отображение фрейма в браузере Chrome

4. Сбросить кэш. Есть 2 варианта:
Удаляем все файлы с расширением .php из каталога /fuel-php.ru/public_html/сache.
Или в админке переходим в:
Стили -> Компоненты стилей -> Шаблоны -> Кэш (напротив названия вашей темы), выделяем и удаляем все файлы из кэша.

Итак, мы защитили форум на phpBB от простых спам-ботов. Как уже писал выше, защита простая, но работает.

Subscribe without commenting


  1. Denis
    27th Март 2012 в 08:39

    Еще можно попробовать Клинтолк http://cleantalk.ru/phpbb3, с простыми ботами справляется хорошо + можно вообще отказаться от капчи, облегчить регистрацию на форуме.

  2. 28th Ноябрь 2012 в 09:30

    Вопрос такой! Как убрать реф.ссылку в ПХП?

  3. Тарлюн Максим
    28th Ноябрь 2012 в 10:25

    Не понял ваш вопрос. Что именно вы имели в виду?