вторник, 9 марта 2010 г.

Как очистить форум phpBB 3 от спама. SQL скрипты. Ручная очистка.

Часто бывает что форум phpBB 3 не защищен от спамерских атак.
Перед тем как чистить форум от спама установите какой нибудь мод, который бы защитил ваш форум от спам атак в дальнейшем.

Чистить будем простыми последовательными SQL запросами.
Для этого вам нужно войти в phpMyAdmin или туда в чем вы привыкли работать с SQL на сервере и будет запускать SQL скрипты.

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

Итак допустим вы хотите почистить форум от сообщений в которых присутствует слова "sex" и "porn". Будем рубить конкретно - удалим все сообщения, темы пользователей и самих пользователей, которые хотя бы в одном сообщении форума написали слова "sex" или "porn". Будьте осторожны с подбором спамерских слов, так как можно удалить реальные сообщения и реальных пользователей которые употребили одно из этих слов.

Выполните первый(№ s-1) и второй(№ s-2) скрипт - результат сохраните для дальнейших манипуляций.

-- № s-1 ищем пользователей употребивших слова %sex% или %Porn%
SELECT GROUP_CONCAT( `poster_id` ) FROM `phpbb_posts` WHERE `post_text` LIKE '%sex%' OR `post_text` LIKE '%Porn%';
-- результат скрипта № s-1 - IDспамеров = id пользователей через запятую

-- № s-2
SELECT GROUP_CONCAT(topic_id) FROM `phpbb_topics_posted` WHERE user_id IN (IDспамеров); /* где IDспамеров - результат скрипта № s-1 */
-- результат скрипта № s-2 - IDтемы = id тем через запятую

Запросы удаления №№ d-1 - d-7 можно выполнять как поочередно так и все вместе.
Теперь удаляем спамерские темы, сообщения и спамеров из базы.

-- № d-1 удаляем сообщения
DELETE FROM `phpbb_posts` WHERE `poster_id` IN (IDспамеров); /* где IDспамеров - результат скрипта № s-1 */
-- № d-2 удаляем темы
DELETE FROM `phpbb_topics` WHERE `topic_id` IN (IDтемы) OR `topic_poster` IN (IDспамеров); /* где IDтемы - результат скрипта № s-2*/
-- № d-3
DELETE FROM `phpbb_topics_posted` WHERE `topic_id` IN (IDтемы); /* где IDтемы - результат скрипта № s-2*/
-- № d-4
DELETE FROM `phpbb_topics_track` WHERE `topic_id` IN (IDтемы); /* где IDтемы - результат скрипта № s-2*/
-- № d-5
DELETE FROM `phpbb_topics_watch` WHERE `topic_id` IN (IDтемы); /* где IDтемы - результат скрипта № s-2*/
-- № d-6 удаляем пользователей (спамеров)
DELETE FROM `phpbb_users` WHERE `user_id` IN (IDспамеров); /* где IDспамеров - результат скрипта № s-1 */
-- № d-7
DELETE FROM `phpbb_user_group` WHERE `user_id` IN (IDспамеров); /* где IDспамеров - результат скрипта № s-1 */

Осталось обновить статистику форума в админке phpBB

0 коммент.:

Отправить комментарий

Показ слайдов

Loading...

Постоянные читатели

Мой список блогов