Dan @MontyBurns read-only
Пользователь
9 февраля 2011 в 00:28

Администрирование → Как защитить форум на движке phpBB от автоматических регистраций

Форумный движок phpBB обладает большим количеством достоинств, он удобен и для пользователей и для модераторов и, как следствие, очень популярен. Но именно популярность порождает его главный недостаток — его спамят, причем спамят в автоматическом режиме. Через некоторое время постоянный поток регистраций новых фейковых пользователей и спам сообщений от них может порядком поистрепать нервы администрации сайта.

PhpBB версии 3.* в базовой поставке содержит аж 4 варианта каптчи, которые можно предлагать пользователям при регистрации на форуме. Есть даже recaptcha, однако для автосабмиттеров, как показывает практика, это не помеха.

Эти программы знают как выглядят типовые точки входа на страницы регистрации различных форумных движков. Знание это основано на распознавании DOM-моделей вебстраниц, содержащих формы для регистрации новых пользователей, для постинга сообщений и так далее. То есть, например, в случае phpBB робот знает, что точка входа для регистрации находится по адресу /ucp.php?mode=register и что на этой странице есть кнопка вида:



<input type="submit" class="button1" value="..." id="agreed" name="agreed">


Не вдаваясь в технические подробности, отмечу что найти и нажать эту кнопку в html-документе уже можно как минимум по id или по name.

Как только робот добирается до страницы с каптчей, он получает картинку каптчи и пытается распознать её. Тут могут применяться различные технологии, в зависимости от изощренности программы, от OCR-алгоритмов до простого распознавания каптчи живым человеком. Именно поэтому защита не срабатывает. Бан IP-адресов на форуме также абсолютно бесполезен, так как роботы спамят через многочисленные прокси сервера. В этом смысле нет разницы банить адреса или чистить новые авторегистрации, всё так или иначе сводится к потере времени.

Получается, что единственный способ отсечь автосабмиттеры — немного видоизменить разметку точки входа на форум уникальным образом. Еще года два-три назад для phpBB2 я проделал такой фокус и это сработало — автоматические регистрации прекратились. Тоже самое недавно удалось подтвердить на другом сайте, уже на движке на phpBB3.

Далее я приведу конкретный проверенный пример видоизменения страницы регистрации phpBB. Однако хотелось бы оговориться, что данный пост предлагает концепцию защиты от автоматических регистраций на форумах, а не конкретные способы. Всё зависит от рук и головы администратора форума. Желательно обладать элементарными знаниями html и css. Если читатели начнут массово копировать данный способ, то эту «эвристику» спамеры запрограммируют в свой софт и автоматические регистрации продолжатся.

Итак, выбираем настройках phpBB форума самую простую каптчу «CAPTHA без GD».
Выглядит в браузере (FF3) это так:



Если посмотреть на разметку страницы регистрации в районе картинки с каптчей, то она выглядит так:

<dt><label for="confirm_code">Код подтверждения:</label></dt>
<dd><img src="./ucp.php?mode=confirm&confirm_id=6c5577092e91ccaeb04032537f70ab65&type=1" alt="Код подтверждения" /></dd>


Собственно атрибут src в теге img и содержит картинку с каптчей. Открываем фолдер с текущей темой, установленной на форуме. В моем случае это prosilver: /forum/styles/prosilver/template. В нём находим файл captcha_default.html. Если посмотреть в этот шаблон, то видно место, в котором формируется вышеупомянутая разметка:

<dt><label for="confirm_code">{L_CONFIRM_CODE}:</label></dt>
<dd><img src="{CONFIRM_IMAGE_LINK}" alt="{L_CONFIRM_CODE}" /></dd>
<dd><input type="text" name="confirm_code" id="confirm_code" size="8" maxlength="8" tabindex="{$CAPTCHA_TAB_INDEX}" class="inputbox narrow" title="{L_CONFIRM_CODE}" />


Лёгким телодвижением усложним жизнь автосабмиттерам:

<dt><label for="confirm_code">Код подтверждения:</label></dt>
<dd><iframe src="./ucp.php?mode=confirm&confirm_id=6c5577092e91ccaeb04032537f70ab65&type=1"></iframe></dd>


Выглядеть в браузере это будет теперь так:



Согласен, не очень красиво, зато нервы админа теперь будут в порядке. Обычные пользователи по-прежнему могут регистрироваться. Разумеется, при апгрейде движка на более новую версию нужно будет не забыть проделать этот фикс еще раз. Надеюсь, что храбро-phpbb-пользователи не будут зацикливаться на данном примере, а придумают другие способы изменения точки входа согласно предложенной концепции защиты.
Dan @MontyBurns
карма
18,0
рейтинг 0,0
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама

Самое читаемое Администрирование

Комментарии (52)

  • 0


    так лучше?
    • 0
      width=«длина» height=«высота» frameborder=«0»
  • –3
    Ну, если к вашему сайту подойдут более-менее творчески, то ни это телодвижение, ни загрузка картинки JavaScript'ом, ни применение однократных ссылок не помогут, для всего этого есть обходные пути. Увы.
    Добавьте кнопку «это спам» на сообщения новых пользователей, заносите в список на экстренную проверку модератором, блокируйте, отправляйте жалобу на IP адрес, с которого пришёл спам в автоматическом режиме, если модератор также посчитает, что это спам. Есть шанс по цепочке добраться и до злоумышленника. Иначе — это неистребимо.
    • 0
      Перечитайте топик, речь идет об обрубе большинства автоматических программ, а не о спам-атаке на конкретный форум.
  • +4
    я считаю, капча — тупиковый путь, от нее страдают пользователи. Будущее за системами вроде Akismet.
    Кстати, пробовали как она себя на форуме ведет?
    • 0
      Кириллицу у меня пропускало около полугода назад.
  • +2
    Автор вы пошли правильным путем, но не далеко ушли.
    Я сам когда-то писал программку постер в phpbb, вот именно ваше изменение никак бы не повлияло на процесс работы моей программы.

    Нужно путь и параметры картинки менять кардинально

    ucp.php => abc.php
    mode=confirm => do=pic
    это для примера.

    Самая главная спаммерская программа Хрумер проверяет все картинки на предмет не капча ли на ней нарисована, у вас конечно теперь не img а iframe, даже если сейчас Хрумер не проверяет ифреймы сделать это пустяк.

    ЗЫ. если вы предложите решение завернуть капчу phpbb во флеш, как минимум вам памятник поставят.
    • 0
      в сильверлайт %)
      • +3
        Продожлим? В Unity3D-плагин. И еще позволить ее крутить мышкой вокруг трех осей. Будет труЪ.
        • 0
          трёхмерная капча… вы взорвали мой мозг
          • 0
            Ох, знали бы вы… Тык
            • 0
              L2top… Знаю, даже больше чем хотелось бы :-(
              • 0
                Неужели Вы ее и сделали? :)
                • 0
                  Нет, я ее в свое время долго, нудно и больно распознавал :)
    • 0
      • 0
        Имхо легко.
        • 0
          Что легко?
          • 0
            Распознать.
            • 0
              Поделитесь?
    • +1
      А не проще ли использовать один из видов phpbb каптчи, которая предлагает задавать вопрос пользователю? По опыту, это сразу прекращает спам.
  • +3
    Отлично помогает добавление еще одного поля, которое нужно заполнить определенным текстом (подойдет даже checkbox, который нужно просто отметить).
    • 0
      Дешево и сердито, а главное отсеивает 100%. Ну, пока кто-то не модифицирует бота специально для вашего форума:) Но тогда не сложно сделать мелкую правку и все снова будет работать
      • +1
        Да можно вообще ничего не править, у пхпбб есть вариант каптчи с «ответом на вопросы».
  • +2
    Столкнулся с такой же проблемой — было 5-7 спамерских сообщений в сутки, обновил третий phpbb до последней версии+поставил reCaptcha, итог — количество сообщений выросло до 50 в сутки, такое ощущение что спамеры издеваются, ставил мод который изменяет имя поля подтверждения при регистрации — результата ноль. В итоге пришел к моду Anti-Bot Question, который помог на 100%, я даже ненавистную капчу убрал, в итоге всего 2-4 спам поста в сутки, и то явно созданных человеком. (кстати по умолчанию активация учетки по почте отключена, если кто начинает бороться со спаммерами это первая опция, которую необходимо включить)
  • 0
    а я поступил более радикально и перешел на SMF. Да и внешний вид в SMF правится более легко. И моды ставятся просто безгеморойно.
    • 0
      а для SMF не пишут спамботов?
      • 0
        Для SMF пишут еще как, у меня один форум на этой CMS, так в день по 20 бот-регистраций :(
      • 0
        пишут. но видимо меньше. на phpbb-шном движке спам начался в первый же день. на smf ещё не было.
        да и дело в основном было не в спаме, а в модах и редизайне
  • +2
    На yiiframework.ru/forum/ сделал просто и эффективно: yiiframework.ru/forum/ucp.php?mode=register
  • +3
    Для phpBB давно есть хорошее решение, которое вместо капчи предлагает выбрать один из вариантов ответа на вопросы, котрые устанавливает администратор.
    После установки уже несколько лет только ручные регистрации.
    • 0
      а можно подробней про этот плагин?
      • 0
        А вот выше про него написали. Anti-Bot Question — вроде так называется.
        Выглядит примерно так: forum.chatukg.com/profile.php?mode=register&agreed=true

        Позволяет добавлять картинки, делать несколько вариантов ответа (несколько слов например)
        • 0
          ага, спасибо
  • 0
    надо же, только в субботу решал эту же проблему. Мне, правда, немного другое решение подсказали: itforum-sochi.ru/viewtopic.php?p=9715#p9715
  • 0
    Тоже пробовали разные варианты на последней версии PhpBB3, в итоге используем reCaptcha и настройку «Лимит сообщений для новых пользователей», равную единице (в админке «Регистрация пользователей/Общие настройки»). В результате сообщения новых юзеров проходят премодерацию. Как только хотя бы одно сообщение пользователя одобрено, его сообщения сразу публикуются. Это помогает и от ботов, и от гуманоидных :) спамеров.
    Пробовал добавлять дополнительные поля при регистрации — не помогает.
  • +2
    www.keycaptcha.com/

    Прикрутил ее, даже в профили перестали спамить. Так как известно, что многие, только регистрируются оставляют ссылку и выходят. Поначалу переживал, вдруг народ перестанет регистрироваться, ничего подобного, всем нравится) Возможно кому-то поможет ссылка.
  • –5
    я сделал защиту через ответ на вопрос, т.е. юзер сообщает мне на мыло свой ид вконаткте, вообще рассказывает о себе и после я ему даю ответ на вопрос при регистрации.
    • +4
      бедные юзеры
    • +7
      хорошее решение для форума с тремя пользователями
    • +1
      Ну и как вам одному на ресурсе, не скучно? :)
  • –1
    я сделал плагин с KCaptcha и не парюсь
  • 0
    Интересное решение. Но я избавился от ботов с помощью мода AntiBotQuestion. После установки мода, ни одного спам-сообщения не появилось… пока что.
    Помимо капчи, этот мод просит ответить на вопрос при регистрации.
    Ссылка на мод: www.phpbbguru.net/community/topic11370.html
  • 0
    www.stopforumspam.com/contributions

    Отлично фильтрует даже по IP (т.е. без передачи приватной инфы третей стороне).
  • +1
    Читал комментарии и сильно удивлялся неосведомленности людей.
    Кто-то правит код, кто-то ставит какие-то моды.

    Ребята, в phpbb уже давно есть вид «каптчи» предлагающий отвечать на вопросы.
    Если задавать не сильно тривиальный вопрос (типа 2+2), то спам это отсекает полностью.
  • +1
    В комментариях советуют поставить мод AntiBotQuestion, но схожий функционал уже встроен в phpbb3 и называется «текстовое подтверждение».

    Не имел опыта работы с AntiBotQuestion, но судя по описанию, он отличается только возможностью добавления картинки в вопрос (поправьте если я ошибаюсь).

    После того как поменял антиспам с капчи на «текстовую защиту» — боты полностью исчезли.
    • 0
      аналогично. после того, как в начале января пала реКапча, тоже пришлось перейти на текстовую капчу встроенную в phpbb3. даже вопрос менять не пришлось с тех пор, хотя казалось бы ответ находится в адресе самого сайта.
      и никаких лишних телодвижений.
    • 0
      Также поменял на стандартный способ «текстовое подтверждение», уже несколько суток полет нормальный, до этого было несколько ботов в день.
  • +1
    У меня при регистрации задается вопрос по тематике форума. Ни одного бота за 6 лет :)
  • 0
    Я клиенту на phpbb 2.x прикрутил творение некоего круглова — www.captcha.ru/kcaptcha/.
    рекомендую. оч. похоже на гугловскую капчу.
    с тех пор никаких ботов.
  • НЛО прилетело и опубликовало эту надпись здесь
  • 0
    А что если некоторые браузеры не поддерживают iframe технологию? Ведь сам по себе phpBB3 поддерживается абсолютным их большинством?
  • 0
    По мне, так достаточно использовать рекаптчу или кейкапчту.

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.