Спамеры атакуют - как за раз убить или перенести все посты с одного IP? Тема решена
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды
Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение
).
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды
Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение
-
servina
- phpBB 1.2.0
- Сообщения: 16
- Стаж: 18 лет 9 месяцев
Спамеры атакуют - как за раз убить или перенести все посты с одного IP?
Доброго времени суток!
Какой-то недоброжелатель напостил спаму в мой форум. Сообщений триста, все с одного IP.
С помощью phpMyAdmin я полезла в таблицу phpbb_posts и нашла там все спамные сообщения.
Я попробовала менять у этих сообщений topic_id и forum_id, чтобы перенести сообщения в специальную ветку (назовём эту специальную ветку "накопительной").
При таком способе возникают следующие проблемы:
1. Если есть спамный топик с одним спамным сообщением, то топик остаётся, но когда в него заходишь, то сообщений нет. То есть остаётся "фантомный" топик без постов внутри.
2. В накопительной ветке спамное сообщение с изменённым topic_id и forum_id появляется, но оно замещает собой последнее сообщение в этой ветке.
Например: в накопительной ветке было 25 сообщений. Переносим в эту ветку спамное сообщение, изменив topic_id и forum_id. В накопительной ветке спамное сообщение встаёт на 25-е место, а предыдущего 25-го сообщения не видно, оно как бы замещается на спамное сообщение.
При изменении topic_id и forum_id всё правильно возвращается на место.
Подскажите пожалуйста, как быстро и корректно перенести постинги в нужную ветку?
Спасибо!
Какой-то недоброжелатель напостил спаму в мой форум. Сообщений триста, все с одного IP.
С помощью phpMyAdmin я полезла в таблицу phpbb_posts и нашла там все спамные сообщения.
Я попробовала менять у этих сообщений topic_id и forum_id, чтобы перенести сообщения в специальную ветку (назовём эту специальную ветку "накопительной").
При таком способе возникают следующие проблемы:
1. Если есть спамный топик с одним спамным сообщением, то топик остаётся, но когда в него заходишь, то сообщений нет. То есть остаётся "фантомный" топик без постов внутри.
2. В накопительной ветке спамное сообщение с изменённым topic_id и forum_id появляется, но оно замещает собой последнее сообщение в этой ветке.
Например: в накопительной ветке было 25 сообщений. Переносим в эту ветку спамное сообщение, изменив topic_id и forum_id. В накопительной ветке спамное сообщение встаёт на 25-е место, а предыдущего 25-го сообщения не видно, оно как бы замещается на спамное сообщение.
При изменении topic_id и forum_id всё правильно возвращается на место.
Подскажите пожалуйста, как быстро и корректно перенести постинги в нужную ветку?
Спасибо!
-
владимир1983
- phpBB 3.2.6
- Сообщения: 5954
- Стаж: 16 лет 4 месяца
- Откуда: Сергиев Посад
- Благодарил (а): 373 раза
- Поблагодарили: 727 раз
Re: Спамеры атакуют - как за раз убить или перенести все посты с одного IP?
Используй штатные средства для очистки форума после атаки. Админ раздел > Пользователи и группы > Очистка списка пользователей
Можно удалить всех пользователей за определенное время с их сообщениями.
Можно удалить всех пользователей за определенное время с их сообщениями.
За ваши деньги решу ваши проблемы. Стучи в ЛС.
Нет человека - нет проблемы. (c)
Нет человека - нет проблемы. (c)
-
Sheer
- Former team member
- Сообщения: 12113
- Стаж: 19 лет 7 месяцев
- Откуда: Калининград не Кенигсберг
- Благодарил (а): 54 раза
- Поблагодарили: 2756 раз
Re: Спамеры атакуют - как за раз убить или перенести все посты с одного IP?
Вариант первый и правильный. Удалите пользователя, выбрав при удалении опцию Удалить сообщения
Вариант второй, хлопотный. В модераторском разделе выбрать в теме ненужные сообщения и удалить их.
Вариант второй, хлопотный. В модераторском разделе выбрать в теме ненужные сообщения и удалить их.
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
-
servina
- phpBB 1.2.0
- Сообщения: 16
- Стаж: 18 лет 9 месяцев
Re: Спамеры атакуют - как за раз убить или перенести все посты с одного IP?
Господа, вопрос в том, как удалить посты с IP-адреса!
Штатными средствами нельзя - у меня на форуме разрешены анонимные сообщения без регистрации на форуме с капча-защитой.
Нужен способ нормально всё удалить SQL-запросом напрямую в базе.
Штатными средствами нельзя - у меня на форуме разрешены анонимные сообщения без регистрации на форуме с капча-защитой.
Нужен способ нормально всё удалить SQL-запросом напрямую в базе.
-
Sheer
- Former team member
- Сообщения: 12113
- Стаж: 19 лет 7 месяцев
- Откуда: Калининград не Кенигсберг
- Благодарил (а): 54 раза
- Поблагодарили: 2756 раз
Re: Спамеры атакуют - как за раз убить или перенести все посты с одного IP?
Одним запросом это невозможно.
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
-
servina
- phpBB 1.2.0
- Сообщения: 16
- Стаж: 18 лет 9 месяцев
Re: Спамеры атакуют - как за раз убить или перенести все посты с одного IP?
Одним запросом можно запросто перенести все посты в нужную тему!
Однако возникает проблема - смотри два вопроса из первого поста.
Для меня не проблема в текстовом редакторе подготовить нужные запросы.
Вопрос - в каких таблицах и что ещё нужно крутить?
Например, в таблице phpbb_topics я могу убить "фантомные" топики по topic_id. Этого будет достаточно?
Кто знает, в каких таблицах и что надо крутить?
Исходный пункт: я фильтрую все посты из таблицы phpbb_posts по IP-адресу и получаю post_id, topic_id и forum_id спамных сообщений.
Спасибо!
Однако возникает проблема - смотри два вопроса из первого поста.
Для меня не проблема в текстовом редакторе подготовить нужные запросы.
Вопрос - в каких таблицах и что ещё нужно крутить?
Например, в таблице phpbb_topics я могу убить "фантомные" топики по topic_id. Этого будет достаточно?
Кто знает, в каких таблицах и что надо крутить?
Исходный пункт: я фильтрую все посты из таблицы phpbb_posts по IP-адресу и получаю post_id, topic_id и forum_id спамных сообщений.
Спасибо!
-
Sheer
- Former team member
- Сообщения: 12113
- Стаж: 19 лет 7 месяцев
- Откуда: Калининград не Кенигсберг
- Благодарил (а): 54 раза
- Поблагодарили: 2756 раз
Re: Спамеры атакуют - как за раз убить или перенести все посты с одного IP?
Проще написать скрипт, который вычислит все сообщения по определенному IP, и потом удалит их, использую встроенную функцию phpBB
delete_post()Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
-
servina
- phpBB 1.2.0
- Сообщения: 16
- Стаж: 18 лет 9 месяцев
Re: Спамеры атакуют - как за раз убить или перенести все посты с одного IP?
Скрипты для phpBB - для меня тёмный лес. Более менее дружу с phpMyAdmin и SQL запросами.
Но нужно точно знать, как записаны данные в таблицах phpBB.
Возвращаясь к моим пунктам:
1. Если есть спамный топик с одним спамным сообщением, то топик остаётся, но когда в него заходишь, то сообщений нет. То есть остаётся "фантомный" топик без постов внутри.
Тут вроде могу удалить из таблицы phpbb_topics известные topic_id. Не знаю, будет ли этого достаточно...
2. В накопительной ветке спамное сообщение с изменённым topic_id и forum_id появляется, но оно замещает собой последнее сообщение в этой ветке.
А что с этим делать, пока совсем непонятно.
Но нужно точно знать, как записаны данные в таблицах phpBB.
Возвращаясь к моим пунктам:
1. Если есть спамный топик с одним спамным сообщением, то топик остаётся, но когда в него заходишь, то сообщений нет. То есть остаётся "фантомный" топик без постов внутри.
Тут вроде могу удалить из таблицы phpbb_topics известные topic_id. Не знаю, будет ли этого достаточно...
2. В накопительной ветке спамное сообщение с изменённым topic_id и forum_id появляется, но оно замещает собой последнее сообщение в этой ветке.
А что с этим делать, пока совсем непонятно.
-
Sheer
- Former team member
- Сообщения: 12113
- Стаж: 19 лет 7 месяцев
- Откуда: Калининград не Кенигсберг
- Благодарил (а): 54 раза
- Поблагодарили: 2756 раз
Re: Спамеры атакуют - как за раз убить или перенести все посты с одного IP?
Потому что при штатном удалении затрагивается еще и таблица
forums, поля
- forum_last_post_id
- forum_last_poster_id
- forum_last_post_subject
- forum_last_post_time
- forum_last_poster
Таблица
topicsменяются
- topic_last_post_id
- topic_last_poster_id
- topic_last_poster_name
То есть это нужно вычислять и менять. Вручную это не так-то просто.
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
-
servina
- phpBB 1.2.0
- Сообщения: 16
- Стаж: 18 лет 9 месяцев
Re: Спамеры атакуют - как за раз убить или перенести все посты с одного IP?
На сколько я понимаю, эти все last_post_id только для косметического эффекта - чтобы в списке тем и форумов показывать аннотацию на последний топик, кто его написал и т.д.
Но вот почему
2. В накопительной ветке спамное сообщение с изменённым topic_id и forum_id появляется, но оно замещает собой последнее сообщение в этой ветке.
???
Отправлено спустя 4 минуты 44 секунды:
Хорошо, а как написать phpbb-скрипт и куда его засунуть?
Я могу определить все неугодные мне post_id.
Потом мне надо сделать что-то типа move_post(post_id, накопительная_тема_topic_id)
Как это сделать?
Более того, я могу даже не писать циклы, а тупо в текстовом редакторе сделать триста строк с вызовом move_post(...) и как-то вызвать скрипт.
Как это сделать и есть ли функция move_post()?
Спасибо.
Но вот почему
2. В накопительной ветке спамное сообщение с изменённым topic_id и forum_id появляется, но оно замещает собой последнее сообщение в этой ветке.
???
Отправлено спустя 4 минуты 44 секунды:
Хорошо, а как написать phpbb-скрипт и куда его засунуть?
Я могу определить все неугодные мне post_id.
Потом мне надо сделать что-то типа move_post(post_id, накопительная_тема_topic_id)
Как это сделать?
Более того, я могу даже не писать циклы, а тупо в текстовом редакторе сделать триста строк с вызовом move_post(...) и как-то вызвать скрипт.
Как это сделать и есть ли функция move_post()?
Спасибо.
-
Sheer
- Former team member
- Сообщения: 12113
- Стаж: 19 лет 7 месяцев
- Откуда: Калининград не Кенигсберг
- Благодарил (а): 54 раза
- Поблагодарили: 2756 раз
Re: Спамеры атакуют - как за раз убить или перенести все посты с одного IP?
Нет. Это чтобы не было такого эффекта.
Ну и статистика должна правильно отображаться. Поэтому вносятся изменения еще и в таблицу
configИ прекратите пихать пустые абзацы. Задолбался править я ваши посты
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
-
servina
- phpBB 1.2.0
- Сообщения: 16
- Стаж: 18 лет 9 месяцев
Re: Спамеры атакуют - как за раз убить или перенести все посты с одного IP?
Не понимаю логики использования.
У поста есть post_id, topic_id и forum_id
Значит по селекту всегда можно показать все посты из одной темы. Зачем ему знать, например, last_post_id, чтобы показать все посты темы?
К тому же, если бы выборка постов к теме ограничивалась по last_post_id, то спамное сообщение в накопительном топике не появлялось бы вообще. А оно появляется, да ещё и заменяет оригинальное последнее сообщение из топика.
У поста есть post_id, topic_id и forum_id
Значит по селекту всегда можно показать все посты из одной темы. Зачем ему знать, например, last_post_id, чтобы показать все посты темы?
К тому же, если бы выборка постов к теме ограничивалась по last_post_id, то спамное сообщение в накопительном топике не появлялось бы вообще. А оно появляется, да ещё и заменяет оригинальное последнее сообщение из топика.
-
Sheer
- Former team member
- Сообщения: 12113
- Стаж: 19 лет 7 месяцев
- Откуда: Калининград не Кенигсберг
- Благодарил (а): 54 раза
- Поблагодарили: 2756 раз
Re: Спамеры атакуют - как за раз убить или перенести все посты с одного IP?
Женская логика - дело смутное.
В корневую папку. Начните для начала так
Код: Выделить всё
<?php
define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);
// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup();
$ip = '127.11.0'; // Use needed IPs
$sql = 'SELECT post_id, topic_id, forum_id
FROM ' . POSTS_TABLE . '
WHERE poster_ip LIKE \'' . $ip . '\'';
$result = $db->sql_query($sql);
while($row = $db->sql_fetchrow($result))
{
$rowset[] = $row;
}
$db->sql_freeresult($result);
print "<pre>"; print_r($rowset);print "</pre>"; Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
-
servina
- phpBB 1.2.0
- Сообщения: 16
- Стаж: 18 лет 9 месяцев
Re: Спамеры атакуют - как за раз убить или перенести все посты с одного IP?
О спасибочки!
Как я поняла, этот скрипт выведет мне список всех post_id, topic_id, forum_id с заданным IP?
Куда поместить скрипт? В каталог, куда phpbb установлен?
В корневую папку не могу. Форум находится в /home/servina/forum.
Писать могу максимум в /home/servina/.
Отправлено спустя 8 минут 57 секунд:
Так Вы имели ввиду php-скрипт! На php я раньше немного делала, но всё забыла
Интересно, что в оригинальных скриптах написано:
а вы мне предлагаете просто
Сейчас попробую запустить.
Отправлено спустя 6 минут 12 секунд:
Ну отличненько всё получилось:
Отправлено спустя 8 минут 8 секунд:
Теперь видимо надо циклик соорудить и переместить все найденные post_id в нужный topic_id.
Не поможете, пожалуйста?
Как я поняла, этот скрипт выведет мне список всех post_id, topic_id, forum_id с заданным IP?
Куда поместить скрипт? В каталог, куда phpbb установлен?
В корневую папку не могу. Форум находится в /home/servina/forum.
Писать могу максимум в /home/servina/.
Отправлено спустя 8 минут 57 секунд:
Так Вы имели ввиду php-скрипт! На php я раньше немного делала, но всё забыла
$user->setup('viewforum');а вы мне предлагаете просто
$user->setup();Сейчас попробую запустить.
Отправлено спустя 6 минут 12 секунд:
Ну отличненько всё получилось:
Код: Выделить всё
Array
(
[0] => Array
(
[post_id] => 10807
[topic_id] => 576
[forum_id] => 7
и т.д.Теперь видимо надо циклик соорудить и переместить все найденные post_id в нужный topic_id.
Не поможете, пожалуйста?
Последний раз редактировалось Sheer 31.10.2015 18:00, всего редактировалось 1 раз.
Причина: bb-код
Причина: bb-код
-
Sheer
- Former team member
- Сообщения: 12113
- Стаж: 19 лет 7 месяцев
- Откуда: Калининград не Кенигсберг
- Благодарил (а): 54 раза
- Поблагодарили: 2756 раз
Re: Спамеры атакуют - как за раз убить или перенести все посты с одного IP?
Предварительно отключите конференцию и сделайте полную резервную копию базы данных!!!
Отправлено спустя 1 минуту 26 секунд:
Код: Выделить всё
<?php
define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);
include($phpbb_root_path . 'includes/functions_posting.' . $phpEx);
// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup();
$ip = '127.11.0'; // Use needed IPs
$rowset = array();
$sql = 'SELECT
f.forum_id,
t.topic_first_post_id, t.topic_last_post_id,t.topic_replies_real, t.topic_approved, t.topic_type,
p.post_id, p.topic_id, p.post_time, p.poster_id, p.post_postcount, p.post_reported, p.post_postcount, p.post_approved
FROM ' . POSTS_TABLE . ' p, ' . TOPICS_TABLE . ' t, ' . FORUMS_TABLE . ' f, ' . USERS_TABLE . ' u
WHERE p.poster_ip LIKE \'' . $ip . '\'
AND t.topic_id = p.topic_id
AND u.user_id = p.poster_id
AND f.forum_id = t.forum_id';
$result = $db->sql_query($sql);
while($row = $db->sql_fetchrow($result))
{
$rowset[] = $row;
}
$db->sql_freeresult($result);
if (sizeof($rowset))
{
foreach($rowset as $data)
{
delete_post($data['forum_id'], $data['topic_id'], $data['post_id'], $data);
print "Post " . $data['post_id'] . " deleted<br />";
}
}
else
{
print "Posts from IP $ip not found<br />";
}Так помимо языкового файла common.php подключается еще viewforum.php
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.

