Сегодня заметил на нескольких форумах наплыв ботов из китая от 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
Атака китайских ботов
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ | Как задавать вопросы | Как устанавливать расширения
Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение
).
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ | Как задавать вопросы | Как устанавливать расширения
Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение
-
hd321kbps
- phpBB 2.0.3
- Сообщения: 366
- Стаж: 14 лет 4 месяца
- Откуда: Россия, Крым, Армянск
- Благодарил (а): 191 раз
- Поблагодарили: 346 раз
Атака китайских ботов
Последний раз редактировалось Татьяна5 17.07.2026 15:10, всего редактировалось 1 раз.
-
Kuskow
- phpBB 2.0.5
- Сообщения: 474
- Стаж: 10 лет 2 месяца
- Откуда: 🇰🇿 Караганда
- Благодарил (а): 29 раз
- Поблагодарили: 47 раз
Re: Атака китайских ботов
Ботов ноль. Спрашивается: зачем огород городли? Бороться не с кем. Скукотища.


-
Kuskow
- phpBB 2.0.5
- Сообщения: 474
- Стаж: 10 лет 2 месяца
- Откуда: 🇰🇿 Караганда
- Благодарил (а): 29 раз
- Поблагодарили: 47 раз
Re: Атака китайских ботов
Новая версия 5.2 антибота для тех, у кого нет доступа к настройкам Apache/Nginx. Отсекаются зловредные боты, оптимизируется нагрузка на базу данных за счёт исправления запросов. Проверено и работает на своём форуме (в профиле есть ссылка). Совместимо с PHP 7.4 и 8.x. Если раньше устанавливали этот скрипт, теперь нужно выполнить только пункт 2. Отличия от предыдущей версии:
В самое начало файла
* Обязательно повторить это исправление после каждого обновления версии движка, иначе ни один человек на новом устройстве не сможет зайти или зарегистрироваться на форуме.
В конец файла
** Перед сохранением файла исправить в тексте значения параметров
*** Если у вас страница /index.php отличается от / и это важно - исключите из кода блок "Корень форума" или закомментируйте его.
Заходим в админку своего phpBB:
3.1. ОБЩИЕ -> Очистить кэш.
3.2. ОБЩИЕ -> Сброс рекорда посещаемости (только если этот код внедряется впервые).
- исключена блокировка неправильной пагинации
- исключена блокировка запросов с параметрами sid=, view=, вместо этого эффективный редирект
- введена переадресация неверных, изыточных параметров на каноническую страницу - только для ботов, не для пользователей
/assets/javascript/core.js добавляем следующий код (прям первой строкой).* Обязательно повторить это исправление после каждого обновления версии движка, иначе ни один человек на новом устройстве не сможет зайти или зарегистрироваться на форуме.
Код: Выделить всё
document.cookie = "checked=1; path=/; max-age=31104000; SameSite=Lax";config.php добавляем (у кого уже есть, заменяем) следующий код.** Перед сохранением файла исправить в тексте значения параметров
$ppp = 20 и $tpf = 100 на свои. Где их взять - написано там же в тексте. *** Если у вас страница /index.php отличается от / и это важно - исключите из кода блок "Корень форума" или закомментируйте его.
Код: Выделить всё
### phpBB Antibot & URL Clean v5.2 by Kuskow & AI on Google Search
if ($uri = (string)@$_SERVER['REQUEST_URI']) { # не cli
if (!@$_COOKIE['checked']) { # не человек в браузере
$ua = $_SERVER['HTTP_USER_AGENT'] ?? 'python';
# Невозможный адрес страницы или заведомо плохой бот
if (preg_match('#(posting|search|memberlist|[um]cp|config|profile)\.php|/adm/#', $uri)
or preg_match('#ChatGPT|meta-|keys-so|python|Firefox/72#i', $ua)
or strpos($_SERVER['HTTP_REFERER'] ?? '', '#')) {
http_response_code(410); die; }
# Корень форума только /
if (substr($_SERVER['SCRIPT_NAME'], -10) === '/index.php') {
if ($_GET) { http_response_code(410); die; }
if ($uri[-1] !== '/') { header('Location: ./', true, 301); die; }}
# Параметры взять из админки: Общие -> Конфигурация -> Размещение сообщений
$ppp = 20; # количество сообщений на странице темы
$tpf = 100; # количество тем на странице форума
# p= заменяем на t=[&start=]
if (($p = (int)@$_GET['p']) && ($conn = @mysqli_connect($dbhost, $dbuser, $dbpasswd, $dbname, $dbport))) {
if ($post = mysqli_fetch_row(mysqli_query($conn, "SELECT topic_id FROM {$table_prefix}posts WHERE post_id = {$p} AND post_visibility = 1"))) {
$c = mysqli_fetch_row(mysqli_query($conn, "SELECT COUNT(post_id) FROM {$table_prefix}posts WHERE topic_id = {$post[0]} AND post_id < {$p} AND post_visibility = 1"));
$start = intdiv($c[0], $ppp) * $ppp;
header('Location: viewtopic.php?t=' . $post[0] . ($start ? '&start=' . $start : ''), true, 301); die; }
http_response_code(410); die; }
# t= приводим к строгому порядку t=[&start=]
if ($t = (int)@$_GET['t']) {
$start = intdiv((int)@$_GET['start'], $ppp) * $ppp;
$expected_query = 't=' . $t . ($start ? '&start=' . $start : '');
if ($_SERVER['QUERY_STRING'] !== $expected_query) {
header('Location: viewtopic.php?' . $expected_query, true, 301); die; } }
# f= приводим к строгому порядку f=[&start=]
if ($f = (int)@$_GET['f']) {
$start = intdiv((int)@$_GET['start'], $tpf) * $tpf;
$expected_query = 'f=' . $f . ($start ? '&start=' . $start : '');
if ($_SERVER['QUERY_STRING'] !== $expected_query) {
header('Location: viewforum.php?' . $expected_query, true, 301); die; } }
# Хороших ботов и новых посетителей объединяем в одном аккаунте без сессии
$_SERVER['HTTP_USER_AGENT'] = 'Googlebot/'; }
# Избавляемся от сорных параметров
if (preg_match('#view(topic|forum)\.php|search\.php|/\?#', $uri)
and ($newuri = rtrim(str_replace('?&', '?', preg_replace('#&(sid|hilit|[fgy][bcs]+lid|utm_\w+)=[^&]*#', '', str_replace('?', '?&', $uri))), '?&')) !== $uri) {
header('Location: ' . $newuri, true, 308); die; }
}
3.1. ОБЩИЕ -> Очистить кэш.
3.2. ОБЩИЕ -> Сброс рекорда посещаемости (только если этот код внедряется впервые).

