Main > CMS | phpBB > Чистка и модерирование форума phpBB

Чистка и модерирование форума phpBB

13.02.2012 2 comments » Views: 30,580

Логотип phpBB

Столкнулся с задаче почистить форум от спама, который добавлялся практически год. В общей сложности накопилось более 100.000 постов.

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

Решил определиться что попадает 100% под спам:
- Посты в которых 0 сообщений
- Посты не от админа
- Посты не содержащие ключевых слов

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

Окей, нужно приступать к модерации, но выводятся только по 25 сообщений... Значит надо увеличить этот параметр, делается это в админке в управлении форумами:
Админка > Forums > Edit (зеленая шестеренка) > Topics per page:

Максимально тут можно поставить 127. Если Вам надо больше (позволяет оперативка выделенная для скрипта, и его время выполнения), можно сделать хак, модифицировав запись непосредственно в таблице phpbb_forums, столбец: forum_topics_per_page, не забудьте так же ему поменять тип, на побольше.. Замечу, что это необходимо сделать для каждого из форумов.

Т.к. меня устраивало именно 127 на страницу, то я поставил именно это значение. Началась чистка.. Дабы ускорить процесс, я решил предварительно кильнуть пользователей спаммеров, у которых в несколько раз больше сообщений чем у самого общительного пользователя на форуме, отследить это можно по кол-ву сообщений пользователей в таблице Members list, которая находится по примерно такому пути www.forum.com/memberlist.php

Теперь непосредственно про само удаление.. это скучная и не благодарная работа 🙂 вскоре я понял, что мне для визуализации нужных постов, надо раскрасить те, которые удалять, возможно, не нужно. Можно это делать разными способами, я пошел самым простым и написал javascript плагин для GreaseMonkey. Собственно этот пост, именно для того и нужен чтобы этот скриптик не писать вновь, вот он:

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

Ну, а дальше Mark all > Delete

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

Не забывайте делать бэкапы! Удачи!

Author: | Rating: 5/5 | Tags:

2 comments.

Write a comment
  1. Vitaliy Orlov Reply
    19.11.2012 в 10:07 am
    После чистки, я писал для него защиту, которая вполне себе работает до сих пор, без использования дополнительных каптч и т.д.
    При регистрации:
    1) поле email делаем скрытым с помощью стилей
    2) генерируем уникальное название, например хэш от ip + соль.
    3) создаем поле с таким именем и располагаем его вместо скрытой формы email-а
    4) при отправке формы, проверяем, если поле email-а пустое, а в нашем сгенериванном есть email, значит попросту перезаписываем оригинальное поле, что типа:
    $_POST['email'] = $_POST['email_some-hash-code'];
    иначе ничего не делаем.
    5) соотвественно боты будут писать email в скрытое (оригинальное) поле, и таким образом будут палиться.

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

    Разумеется есть поток, ручного спама, но он составляет, только 0,2% от всех попыток оставить коммент, поэтому такой спам, легко фильтруется модератором.
  2. Viki Reply
    19.11.2012 в 9:10 am
    Знал бы раньше, не стал переходить бы с phpBB на другой движок из-за спамленности.

Leave a Reply

Your email address will not be published. Required fields are marked *

Allowed HTML-tags: <a>, <code>, <i>, <em>, <strong>, <b>, <u>, <strike>