Атака китайских ботов
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ | Как задавать вопросы | Как устанавливать расширения
Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение
).
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ | Как задавать вопросы | Как устанавливать расширения
Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение
-
hd321kbps
- phpBB 2.0.3
- Сообщения: 366
- Стаж: 14 лет 2 месяца
- Откуда: Россия, Крым, Армянск
- Благодарил (а): 191 раз
- Поблагодарили: 346 раз
Атака китайских ботов
Сегодня заметил на нескольких форумах наплыв ботов из китая от 100-300 одновременно, которые создают нагрузку на хостинг.
Все заходят с телефона Android и iphone Os.
Адреса ботов:
54.222.*.*
54.223.*.*
52.80.*.*
52.81.*.*
52.82.*.*
52.83.*.*
220.243.*.*
139.217.*.*
139.219.*.*
У кого наблюдается такое-же отпишитесь)
---------------------------
Варианты блокировки ботов:
Re: Атака китайских ботов - от Nekstati
Re: Атака китайских ботов - от Kuskow, php
Re: Атака китайских ботов - от Kuskow, nginx
Все заходят с телефона Android и iphone Os.
Адреса ботов:
54.222.*.*
54.223.*.*
52.80.*.*
52.81.*.*
52.82.*.*
52.83.*.*
220.243.*.*
139.217.*.*
139.219.*.*
У кого наблюдается такое-же отпишитесь)
---------------------------
Варианты блокировки ботов:
Re: Атака китайских ботов - от Nekstati
Re: Атака китайских ботов - от Kuskow, php
Re: Атака китайских ботов - от Kuskow, nginx
Последний раз редактировалось Татьяна5 26.06.2026 0:40, всего редактировалось 1 раз.
Причина: Добавила варианты блокировки ботов
Причина: Добавила варианты блокировки ботов
-
Nekstati
- Поддержка

- Сообщения: 3358
- Стаж: 17 лет 3 месяца
- Благодарил (а): 19 раз
- Поблагодарили: 576 раз
Re: Атака китайских ботов
Код: Выделить всё
!(bool|int) + bool|int + bool|int + (bool < bool)-
Kuskow
- phpBB 2.0.4
- Сообщения: 429
- Стаж: 10 лет 1 месяц
- Откуда: 🇰🇿 Караганда
- Благодарил (а): 29 раз
- Поблагодарили: 42 раза
Re: Атака китайских ботов
Да, пардон, подстрочный перевод:
Варианты плохих запросов:
# 1. Шлагбаум закрыт для плохих ботов, методов и запросовВарианты плохих запросов:
- вызов не главной страницы, не index.php, не file.php, а первый параметр у viewforum.php или у viewtopic.php не f=, не t= и не p= (например, viewtopic.php?start=)
!preg_match('#/$|/(index|file)\.php|/view(forum|topic)\.php\?[ftp]=#i', $uri) - в User-Agent прямо указано, что это бот, написанный на коленке, или запрос пришёл через грязное использование ChatGPT-User
+preg_match('#ChatGPT|keys-so|python|Firefox\/72#i', $ua) - главная страница вызывается с параметрами или любая страница с указанием сессии - так не бывает
+preg_match('#/\?|/index\.php\?|sid=#i', $uri) - признака перехода из браузера нет, а referer есть - так не бывает
+(isset($_SERVER['HTTP_SEC_FETCH_SITE']) < isset($_SERVER['HTTP_REFERER']))
and exit(http_response_code(403));-
Татьяна5
- Поддержка

- Сообщения: 13125
- Стаж: 14 лет 10 месяцев
- Благодарил (а): 165 раз
- Поблагодарили: 2393 раза
-
Shredder
- Former team member
- Сообщения: 2261
- Стаж: 17 лет 6 месяцев
- Благодарил (а): 164 раза
- Поблагодарили: 149 раз
Re: Атака китайских ботов
Разработка может продолжаться долго. Тем, кто желает протестировать или иметь хоть какую-то защиту, будет полезно иметь код в закрепе
-
Татьяна5
- Поддержка

- Сообщения: 13125
- Стаж: 14 лет 10 месяцев
- Благодарил (а): 165 раз
- Поблагодарили: 2393 раза
-
Kuskow
- phpBB 2.0.4
- Сообщения: 429
- Стаж: 10 лет 1 месяц
- Откуда: 🇰🇿 Караганда
- Благодарил (а): 29 раз
- Поблагодарили: 42 раза
Re: Атака китайских ботов
Кажется, я доигрался. У некоторых пользователей при переходе на "первое непрочитанное сообщение" из списка непрочитанных тем или при переходе по уведомлению с сайта (колокольчик) открывается первая страница. Не пойму, в чём дело, вроде бы ничего такого не делал, уже и очистку параметров закомментировал полностью. Не работает, и всё тут. Как будто удаляется
&view=unread, но где он удаляется - вообще никак не найду. Может быть, это не из-за моих изысканий, а вообще такое где-то наблюдалось? И самое интересное, почему это не у всех пользователей, а только у некоторых.-
Kuskow
- phpBB 2.0.4
- Сообщения: 429
- Стаж: 10 лет 1 месяц
- Откуда: 🇰🇿 Караганда
- Благодарил (а): 29 раз
- Поблагодарили: 42 раза
Re: Атака китайских ботов
ИИ предлагает сделать самопальный WAF/fail2ban. Я пока противлюсь, так как мне надоело переписывать за ним, а как он пишет с архитектурными излишествами - меня бесит. Так что, я рассказываю идею, которая давно в воздухе витает, а как реализовать - может у кого-то будут идеи попроще.
За основу берём кусок текста в
Отдельно пишется обработчик лог-файла адресов, которым выдано 403. Он будет запускаться через cron (а может и в основной
- если встретилось 10 уникальных IP-адресов одной подсети класса B - записываем эту подсеть в список забаненных;
- если встретилось 50 вообще любых упоминаний этой подсети класса B - записываем эту подсеть в список забаненных.
За основу берём кусок текста в
config.php, который я раньше уже писал:
Код: Выделить всё
### Барьер для phpBB, версия 4. Авторы: phpBBguru community
if (isset($_SERVER['REQUEST_METHOD']) and !isset($_COOKIE['checked'])) # Этот кук есть только у людей
{
### Тут проверяем, есть ли подсеть бота в списке забаненных и баним этого бота, а если нет, тогда дальше:
$uri = $_SERVER['REQUEST_URI'] ?? '';
$ua = $_SERVER['HTTP_USER_AGENT'] ?? 'python';
if (
!preg_match('#/$|/(index|file)\.php|/view(forum|topic)\.php\?[ftp]=#i', $uri)
or preg_match('#/\?|/index\.php\?#i', $uri)
or preg_match('#ChatGPT|keys-so|python|Firefox\/72#i', $ua)
or (isset($_SERVER['HTTP_SEC_FETCH_SITE']) and isset($_SERVER['HTTP_REFERER']))
) {
### Тут записываем IP-адрес бота в лог-файл с IP-адресами, которым выдано 403
http_response_code(403);
exit;
}
}
Отдельно пишется обработчик лог-файла адресов, которым выдано 403. Он будет запускаться через cron (а может и в основной
config.php его впихнём) каждые 1-5 минут. В нём считываем записанный лог-файл и тут же его обрезаем. Далее из него считаем:- если встретилось 10 уникальных IP-адресов одной подсети класса B - записываем эту подсеть в список забаненных;
- если встретилось 50 вообще любых упоминаний этой подсети класса B - записываем эту подсеть в список забаненных.
-
Kuskow
- phpBB 2.0.4
- Сообщения: 429
- Стаж: 10 лет 1 месяц
- Откуда: 🇰🇿 Караганда
- Благодарил (а): 29 раз
- Поблагодарили: 42 раза
Re: Атака китайских ботов
Я теперь сделал так. Когда fail2ban обнаруживает 2x444 за две минуты, он банит на сутки не один конкретный адрес, а всю подсеть класса C, то есть, 1.2.3.x. Так что, соседние адреса забанены заранее ещё до того, как начнут лезть на кактус. В бане постоянно около 400 таких подсетей.Siava писал(а): 22.03.2026 12:42 Если не секрет, сколько в пике было забаненных адресов в fail2ban? А то я развлекался как-то подобным образом и примерно после 200тыс серверу было не очень комфортно)
-
Vlad__
- phpBB 2.0.7
- Сообщения: 588
- Стаж: 9 лет 6 месяцев
- Благодарил (а): 246 раз
- Поблагодарили: 53 раза
Re: Атака китайских ботов
Сейчас боты используют ротационные прокси, т.е. прокси на мобилках обычных юзеров. Например, в последнем шторме у меня светились самые разные айпи, не привязанные массово к единым подсетям. Поэтому баня подсети, можно забанить и легитимных пользователей.
На пике у меня постоянно висело в бане до 30 тысяч отдельных айпи, серверу было все-равно - ipset )

