Защита форума phpBB 2.0.22 от спама

Защита форума phpBB от спамаРечь сегодня пойдет о защите форума phpBB от спама. Большой истории взаимодействия с движками форумов у меня нет, поэтому этот материал будет полезен, наверное, только новичкам.

Защита регистрации по умолчанию мало что дает и после пяти месяцев неактивной работы форума было уже более 600 левых пользователей. Я к этому делу подходила сначала ручным баном каждого автора спам-сообщения (приспособив кнопочку с помощью мода Moderator ban). Но когда я увидела цифру 600, поняла, что надо что-то кардинально менять, и занялась поиском решения активнее некуда.

При этом я 5 месяцев без дела не сидела и 2 раза заглянула в список модов для phpBB на сайте русскоязычной поддержки пользователей форума phpbbguru.net. Но, к моему удивлению, ничего связанного со спамом не нашла.

Мне еще казалось, что от пользователя надо требовать каждый раз при добавлении сообщения заполнять капчу. И поэтому меня и удивило: в админке "Включить визуальное подтверждение" отмечено переключателем, так почему же обычный зарегистрированный пользователь не вводит капчу при отправке сообщений?

Все объяснилось при чтении форума http://www.phpbbguru.net/community/, где я узнала, что юзера проверяют только при регистрации и при анонимном постинге, а авторизованных проверять не принято. У меня форум только для авторизованных, поэтому интересовала только защита при регистрации.

Сначала я решила привести базу данных MySQL в порядок. Сначала удалила всех тех, кто не подтверждал по e-mail свою регистрацию. Из админки по одному удалять очень неудобно, поэтому я сделала это через PHPMyAdmin.

Как удалять пользователей из таблицы:

  1. Зайдите в PHPMyAdmin, выберите в выпадающем списке базу данных, содержащую таблицы форума.
  2. Найдите имя строки phpbb_users, нажмите на кнопку обзор.
  3. Для сортировки по значению "user_active", кликните по этому слову в заголовке столбца. "0" = пользователь свой аккаунт не активировал по почте, "1" = активировал, а "-1" у анонимного пользователя, удалять ни в коем случае нельзя.
  4. Можно изменить показ по умолчанию 30 строк, чтобы удалять было проще сразу большими пачками. Внизу впишите удовлетворяющее число строк в таблице и нажмите Показать.
  5. Далее нажмите на ссылку в низу таблицы "Отметить все", при этом выделятся все строки на текущей странице, а у пользователя со значением "-1" снимите выделение, так как его удалять нельзя.
  6. Нажмите красный крестик под таблицей и подтвердите свой выбор.

Таким образом, все неактивные пользователи будут удалены из таблицы и форума. Все их персональные данные, ссылки в профиле, ICQ, и т.п. исчезнут безвозвратно.

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

В итоге из 600 с лишним пользователей я оставила только 6.

Содержание таблицы phpbb_banlist я тоже полностью очистила, для экономии места и для порядка, ведь всех забаненных пользователей, IP адресов и e-mail уже не было, и я собиралась поставить от них защиту, если они захотят "напасть" снова.

Из предложенных я выбрала модуль Anti Bot Question MOD, потому что задавать вопросы при регистрации мне показалось очень эффективны средством, кроме того, на drupal.ru к анонимным комментаторам применяется такая же система (я даже оттуда пару вопросов взяла когда редактировала Улыбка ).

Подробно о нем написано в этом топике. Он дает возможность:

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

    Напишите результат вычисления во второй строке:
    507476+226172-137191=?
    (225*1557)+224582=?

    Настраивается число строк с задачами - от 1 до 4, эти выражения могут быть в виде капчи - разными шрифтами на картинке, сложность которой тоже можно выбрать (например, разноцветная сетка на фоне символов).

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

Ну, начнем. Я расскажу, как я устанавливала этот мод на свой форум. При этом на нем уже стоят Moderator ban и Admin Userlist (второй, кстати, выводит список пользователей в админке со ссылками на редактирование и установление прав для каждого, но он не предоставляет ссылок для удаления нескольких пользователей сразу).

Установка

  1. Скачайте мод Anti Bot Question MOD. При этом версия его не имеет отношения к версии форума, качайте последнюю.
  2. Скачайте файл русификации (не путая версии).
  3. В папке с русификацией в install.txt написано:
    #-----[ COPY ]------------------------
    #
    copy lang_russian/*.* to language/lang_russian/*.*
    #

    что может быть непонятно. Объясню: скопируйте папку lang_russian в root/language мода до начала установки.

  4. Файл information_english.txt в папке мода ничего про установку не расскажет, кроме того, что о ней можно прочитать в anti-bot-question-mod_v_3_0_0.txt. Открываем его. Я скажу, что там много лишнего и к установке мало отношения имеет, поэтому читать стоит только после слов:
    Цитата:

    ############################################
    ## Before Adding This MOD To Your Forum, You Should Back Up All Files Related To This MOD
    ############################################

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

  5. Структура этой инструкции заключается в том, что сначала дается указание для четырех наций на родном языке, а потом публикуется международная инструкция уже без #:
    # EN:
    #    create following folders:
    #
    # DE:
    #    folgende Verzeichnisse erstellen:
    #
    # FR:
    #    Crйez les rйpertoires suivants:
    #
    # ES:
    #    crear las siguientes carpetas:
    #
    #   abq_mod
    #   abq_mod/fonts
    #   images/abq_mod
    #   images/abq_mod/admin
    #   images/abq_mod/cache
    #
    Create folder: abq_mod
    Create folder: abq_mod/fonts
    Create folder: images/abq_mod
    Create folder: images/abq_mod/admin
    Create folder: images/abq_mod/cache

    Вы можете прочитать предназначенные для англоговорящих (EN) указания и выполнить команды под ними.

  6. Создав папки, скопируйте файлы через FTP, они расположены так же, как папки в директориях на сайте, поэтому просто запаситесь вниманием и терпением и произведите манипуляции со всеми файлами папки root, которая соответствует корню форума, при этом совсем не обязательно смотреть на список файлов из инструкции по установке - копировать по одному как там написано не стоит.

    Кроме того, продублируйте копирование файлов в папки тем, чтобы при смене темы по прошествии времени не пришлось вспоминать, что же я делал несколько месяцев/лет назад. То есть все, что предназначено для папок /templates/subSilver/admin/ нужно продублировать и для /templates/ваша_тема/admin/.

  7. Далее идет команда выполнить запрос SQL. Войдите в PHPMyAdmin, выберите базу, содержащую таблицы форума, нажмите на вкладку SQL, скопируйте из anti-bot-question-mod_v_3_0_0.txt текст, начиная со строки
    CREATE TABLE phpbb_anti_bot_quest_config (

    и заканчивая

    '50dd984877', '', '', '', '', '', '', '', '', '', '', '');

    и вставьте в поле "Выполнить SQL-запрос(ы) к базе данных ...". Этот запрос создаст необходимые для мода таблицы и наполнит их содержанием.

  8. Далее снова возьмите в охапку терпение, потому что предстоит отредактировать массу файлов. Просто следуйте командам:
    • [ OPEN ] значит "открыть файл";
    • [ FIND ] значит "найти в файле";
      Я делаю все эти команды в FTP клиенте, конкретно эту с помощью функции find and replace
    • [ AFTER, ADD ] или [ REPLACE WITH ] или [ BEFORE, ADD ] означают соответственно "добавить после", "заменить на" и "добавить перед";

    а когда попросят открыть новый файл, сохраните и закройте предыдущий, чтобы избежать путаницы.
    IN-LINE означает "внутри строки".

  9. Теперь можно расслабиться - основная часть работы сделана. Осталось избавиться от ошибки, появляющейся на странице регистрации:
    Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in /home/satnsk/public_html/forum1/db/mysql4.php on line 318

    Если у вас нет ее, ничего делать не надо. Но у меня была и я поступила как написано в этом сообщении. Если все же ошибки остались, можно вообще удалить все строки, содержащие $db->sql_freeresult($result); из файла includes/usercp_register.php. Я так и сделала, потому что удалила строку в нем из неправильного места (она встречается много раз).

  10. Итак, установка завершена. Поздравляю! Теперь можно зайти в админку, нажать на появившуюся ссылку "Anti Bot Question MOD" и приступить к чтению. Все по-русски, так что объяснять нет смысла. Осталось поменять/добавить/загрузить собственные вопросы и настроить существующие...

Я решила написать такой подробный отчет, потому что люблю, когда усилия мои не канут в Лету, а сохраняются для помощи другим и для собственной памяти, чтобы в следуущий раз не вспоминать как делать сделанное.

P.S. По прошествии 6 дней со дня установки мода на форум, спамеры активность не убавили и заблокировано уже 200 (!) регистраций, хотя люди-спамеры все же раз 5 зарегистрировались, но половина из них не активировали аккаунты, а один даже разместил свое наглое спам-сообщение, но был безжалостно удален из базы. То есть как видно защита довольно сильная, что мне и требовалось, значит я не зря старалась.

Редактируя файлы форума, меня не покидал вопрос: Каким образом я буду обновляться? Что, неужели мне придется все эти действия повторять после обновления? Может быть из-за этого я и оставила все это здесь, но меня действительно очень озадачило такое положение дел. И тут не раз я вспоминала как устроен Drupal, в котором не принято трогать код ядра, чтобы можно было без проблем обновляться и не терять измененные данные при изменении версии (внутри ветки). Слава Drupal!

exkluzive

Большое спасибо за понятно изложенный ход действий

Гость

Спасибо, мне очень помогло.

Евгений

Спасибо! Все изложено для людей...четко и понятно...на специализированых же форумах только стебатся умеют!

Гость

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

Гость
Цитата:

При этом я 5 месяцев без дела не сидела и 2 раза заглянула в список модов для phpBB на сайте русскоязычной поддержки пользователей форума phpbbguru.net. Но, к моему удивлению, ничего связанного со спамом не нашла.

спасибо, посмеялся. Вы видимо не умеете пользоваться поиском и читать FAQ. Потому что там давно было все описано. И как вы тогда нашли руссификацию на phpbbguru, если там о спаме ничего не говорилось вообще.
Кстате тема о моде ABQ созадна на phpbbguru

Цитата:

23.09.2006 07:46

, ваша статья написана

Цитата:

17 апр 2008

, то есть даже убрав 5 месяцев которые вы потратили на поиски, не понятно что вы делали еще год.

sa_bo_nim

Искала я в списке http://www.phpbbguru.net/mods/
Возможно, я ошиблась, сразу не заглянув в FAQ (где вопрос про спам под номером 44), но я зашла не на форум, а на сайт и логично было бы разместить подобные моды в соответствующем разделе.
Конечно, потом пришлось зайти на форум, как единственный источник информации о борьбе со спамом и через поиск я все нашла.

Atrorkphora

Наткнулся случайно на Ваш блог. Теперь стану постоянно просматривать. Надеюсь, не разочаруете и дальше Улыбка

Turbo

Хм... у меня почему-то страница регистрации не открывается... пишет мол 500 - внутренняя ошибка сервера =(( Пробовал удалить все строки с "$db->sql_freeresult($result);", не помогло (((

Гость

А зачем папки создавать? Нельзя просто всё в папку root скопировать?

MarioFaf

purchase at low cost Dulcolax in Australia overnight saturday delivery NO PRESCRIPTION ; cheapest prices Dulcolax in UK WITHOUT PRESCRIPTION

[url=http://totalworldstore.com/shop/go.php?sid=1&search=Dulcolax] [u][b]>>> Want to buy with Discount? CLICK HERE! <<<[/b][/u] [/url]

GO to PHARMACY >>> http://totalworldstore.com/shop/go.php?sid=1

Order in Canada Online Cheap Dulcolax from u.s. pharmacy no prescription // http://www.suachuamaynhanh.com/shop/products/B%C3%A0n-Ph%C3%ADm-Laptop-Dell-Inspiron-15%252d7537-C%C...
Buying in Canada Generic Dulcolax without rx << http://myqualitytea.com/index.php/forum/welcome-mat/46744-order-online-at-low-cost-zebeta-c-o-d-with...
Order in UK cheapest Dulcolax pharmacy without a prescription \\ http://cassaforum.com/showthread.php?t=1872&p=217962#post217962
Buy in Australia At Low Price Dulcolax non prescription // http://www.slovenskekridla.sk/news/28/18/Zalet-a-prelet-L-29-v-c-29-4645/
Where Can I Order in USA Dulcolax c.o.d. no rx \\ http://www.orcasys.co/index.php/forum/general-questions/445269-buy-online-primidone-overnight-withou...
Quiqly DeliveryUSA Dulcolax non prescription << http://kcmactherapy.com/forum/welcome-mat/36607-buy-at-low-price-coumadin-pharmacy-without-a-prescri...
How Can I Buy in USA Dulcolax with no prescriptions )) http://debarrastattu.com/index.php/forum/welcome-mat/154-pharmacies-that-sell-elimite-buying-elimite...
Ordering Online Dulcolax no script required @ http://www.coopliberamente.com/dillo_a_un_amico.php?
Where To Order in USA Dulcolax pharmacy without a prescription << http://www.nokia5230.cz/
Purchase in USA Online Dulcolax next day no prescription * http://orbe.mmi-auvergne.fr/index.php/forum/bienvenue/343407-buying-cheapest-generic-fluvoxamine-tab...
Cheap Generic Dulcolax c.o.d. no prescription // http://www.trainingtrust.org/forum/welcome-mat/27340-order-cheap-generic-tricor-cheap-c-o-d-no-rx-tr...
Buy in Australia Cheapest Dulcolax without script << http://morozzka.ru/post.php?tid=253%C2%A0%C2%A0]zppkyt
Buying in Canada At Lowest Price Dulcolax non prescription # http://jxjfgy.cn/index.php
Buy in USA Dulcolax - how to use,side effects,information # http://www.dreierheinerhof.de/?page_id=350
Where To Order in Australia Dulcolax no prescription needed >> http://netsafe.az/index.php
Quiqly Delivery Dulcolax no prescription needed - http://www.louisraaijmakers.nl/forum/welcome-mat/167009-order-online-at-low-cost-wellbutrin-delivere...
How Can I Buy in GB / UK Dulcolax without rx / http://www.websijt.nl/index.php/forum/welcome-mat/317172-how-to-order-ramipril-no-script-required-ra...
Ordering in GB / UK Online Dulcolax c.o.d. no script << http://m.improgress.net/index.php/forum
Pharmacies That Sell Dulcolax without prescription \ http://www.veropukahome.com.tr/page11.php?post=3&messagePage=168
Buying in USA Generic Dulcolax c.o.d. no prescription > http://www.eureka24.pl/twoj-wybor.html?artykul=246
Order in Canada Cheap Generic Dulcolax pharmacy without a prescription ! http://websijt.nl/index.php/forum/welcome-mat/316593-buy-online-amitriptyline-free-prescription-drug...
Cheap Generic Dulcolax with no prescriptions << http://landroverdefenderengines.com/forums/topic/purchase-mobicin-internet-drugs-overnight-mobic-ove...
Purchase At Lowest Price Dulcolax next day delivery * http://www.bekmar.co.za/index.php/forum/welcome-mat/171868-order-cheap-lozol-cheap-online-order-lozo...
Buy in GB / UK Dulcolax cash on delivery overnight // http://school7u-u.ru/forum/razdel-predlozhenij/5930-cheapest-pills-oxytrol-no-prescription-fedex-ups...
Where Can I Purchase in GB / UK Dulcolax no prescription fedex / ups ! http://misijazeleno.si/zelene_novice/clanki/222/Kristalna%20pala%C4%8Da%2C%20najvi%C5%A1ja%20stavba%...
Where To Get Dulcolax shipped by cash on delivery )) http://www.geocontrol.cl/index.php/forum/welcome-mat/70884-purchase-cheap-online-azulfidine-free-del...
Discount Prices in GB / UK for Dulcolax without doctor prescription * http://www.nokiax3.cz/
Where To Buy Clomid no prescription c.o.d. \ http://ifiwrotespiderman4.com/?comments_page=42
Best Prices in Australia for Dulcolax next day delivery no rx * http://www.globalcare-logistics.com/index.php/en/forum/welcome-mat/227798-cheapest-prices-aciphex-no...
Cheapest Prices in Australia for Ayurslim prescriptions online ??? http://lakeshoreliftind.com/forums/topic/lowest-price-of-malegra-fxtcash-on-delivery-malegra-fxt-cas...
Pharmacies in Canada That Sell Dulcolax without dr prescription >> http://www.albertjohnvervorst.nl/wordpress/?page_id=296
Buy Cheapest Dulcolax no dr approval cash on delivery = http://www.nokia5530.cz/index.php
Ordering Online Dulcolax c.o.d overnight no rx / http://www.sga-test.com/forum/welcome-mat/307984-lowest-price-galantamine-no-rx-fast-worldwide-shipp...
Purchase in Australia Cheapest Dulcolax no prior script overnight @ http://www.gotofinland.ru/discussion.html?discussion=1&add=1526979496
Quiqly Delivery Canada Dulcolax without a prescription shipped overnight * http://www.eae-et.com.tr/kabinplus/index.php/forum/certifications/145713-buy-cheapest-verapamil-hcl-...
Where To Order in Canada Dulcolax with overnight delivery * http://mehdibagherimusic.com/index.php/forum/welcome-mat/63372-cheap-price-of-baclofen-non-prescript...
Best Prices in Australia for Dulcolax no prescription \ http://rsud-kanjuruhan.malangkab.go.id/bukutamu.html
in USA Online Dulcolax overnight no prescription ! http://theborogroves.org/forum/index.php?topic=112013.new#new
Order in Australia Cheap Generic Dulcolax in internet drugs overnight )) http://bebetortore.com/content/05community/01_01.php?proc_type=view&b_num=7
Buy in UK cheapest Dulcolax same day delivery no prescription >> http://www.samsound.fr/en/livre_dor.php
How Much in Canada Dulcolax in internet drugs overnight * http://n5130.cz/
Where To Buy in USA Dulcolax delivered overnight no rx - http://www.eruditperm.ru/product/kartochki-domana-muzykalnye-instrumenty/reviews/page5/?msg=k8yo#add...
Buying in Australia Generic Dulcolax online // http://www.diamondscustomjewelers.com/index.php/forum/welcome-mat/55610-buy-discount-clindamycin-wit...
Buy in USA At Low Price Dulcolax no prescription next day delivery >> http://www.rafaelorozco.org/forum/welcome-mat/22367-order-online-at-low-cost-penegra-cheap-c-o-d-no-...
Where To Get in USA Dulcolax overseas with no prescriptions // http://www.lussonium.hu/vendegkonyv/
Where Can I Order Trazodone no rx, fast worldwide shipping >> https://www.steamworks.eu/en/yvr-isa-12x-bottle-330ml/a-201/
Order in GB / UK At Low Price Dulcolax no prescription next day delivery ! http://dist.by/forum/razdel-predlozhenij/2071-mp4-audio-konverter/
Purchase Cheapest Dulcolax delivered overnight no rx > http://www.orcasys.co/index.php/forum/general-questions/445387-purchase-wellbutrin-sr-without-a-pres...
USA Online Pharmacy Dulcolax delivery no prescription ! http://www.iapalucci.com/index.php/forum/welcome-mat/128542-price-of-exelon-no-prescription-c-o-d-ex...