Атака китайских ботов

Вопросы без привязки к версии. Установлена авточистка (2 года).
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ | Как задавать вопросы | Как устанавливать расширения

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Аватара пользователя
Kuskow
phpBB 2.0.3
Сообщения: 352
Стаж: 9 лет 10 месяцев
Откуда: 🇰🇿 Караганда
Благодарил (а): 25 раз
Поблагодарили: 34 раза

Re: Атака китайских ботов

Сообщение Kuskow »

Это классика: глаз замыливается, и мозг подсознательно «дорисовывает» правильный синтаксис, игнорируя лишние детали. Мы так увлеклись логикой редиректов и поведением ботов, что просмотрели банальную синтаксическую ошибку.
В PHP лишняя скобка — это гарантированный Parse error. А поскольку это было в config.php, сайт просто «умирал» в самом начале, выдавая 500 Internal Server Error (если вывод ошибок в браузер выключен).
Забавно, что:
  • Мы искали проблему в методах запроса (GET/POST).
  • Грешили на заголовки AJAX.
  • Анализировали логи Nginx.
...а всё это время сервер просто не мог прочитать код.
phpBB 3.3.15 • Manticore 17.5 • MariaDB 11.4 (2.8 GB) • Redis • PHP 8.3-FPM • Nginx • HestiaCP • Debian 12 • 4GB DDR4 • 60GB NVMe • 2 vCPU 4GHz
Аватара пользователя
Leo Angel
phpBB 2.0.9
Сообщения: 739
Стаж: 8 лет 2 месяца
Откуда: Израиль
Благодарил (а): 242 раза
Поблагодарили: 94 раза

Re: Атака китайских ботов

Сообщение Leo Angel »

Leo Angel писал(а): 10.04.2026 23:45 Как обстоят дела с ботами посмотрю-понаблюдаю-напишу.
Kuskow писал(а): Вчера 5:44 ...а всё это время сервер просто не мог прочитать код.
Ну вот, сервер прочитал код.
Но на ботов он, похоже, впечатление не произвёл. :D
Боты от Alibaba как были в больших количествах, так и остались.
И все опять сидят в одной теме, правда, теперь в другой, не в той, что вчера.
Пока что, по факту самый-самый первый код помог реально против ботов, все остальные варианты лично моему форуму не очень.

Если нет пользы и от этого варианта, то, наверное, буду его сносить. Пока что, что с ним, что без него.
В принципе, нагрузка на сервер небольшая совсем, наверное, пока можно и не париться...
Аватара пользователя
Kuskow
phpBB 2.0.3
Сообщения: 352
Стаж: 9 лет 10 месяцев
Откуда: 🇰🇿 Караганда
Благодарил (а): 25 раз
Поблагодарили: 34 раза

Re: Атака китайских ботов

Сообщение Kuskow »

Leo Angel писал(а): Вчера 11:17 И все опять сидят в одной теме
Они не могут "все они". Потому что теперь они должны стать, как минимум, одним ботом. Значит, что-то Вы не сделали из первых двух пунктов Re: Атака китайских ботов
phpBB 3.3.15 • Manticore 17.5 • MariaDB 11.4 (2.8 GB) • Redis • PHP 8.3-FPM • Nginx • HestiaCP • Debian 12 • 4GB DDR4 • 60GB NVMe • 2 vCPU 4GHz
Аватара пользователя
Leo Angel
phpBB 2.0.9
Сообщения: 739
Стаж: 8 лет 2 месяца
Откуда: Израиль
Благодарил (а): 242 раза
Поблагодарили: 94 раза

Re: Атака китайских ботов

Сообщение Leo Angel »

Kuskow, вот ОНИ (не все, только часть)
1.jpg

В config.php в конец вставил это:

Код: Выделить всё

### Барьер для защиты от ботов, атакующих phpBB-сайты
### Авторы: Kuskow & AI on Google Search & ChatGPT
if (($_SERVER['REQUEST_METHOD'] ?? '') !== 'GET') return; // когда этот скрипт бесполезен
 
# 1. Шлагбаум: извесных ботов не пускаем даже к дому
preg_match('/ChatGPT|keys-so|python|Firefox\/72/i', $ua = $_SERVER['HTTP_USER_AGENT']) +
preg_match('/wp-|profile\.php/i', $uri = $_SERVER['REQUEST_URI'])
and die(header('HTTP/1.1 403'));
 
# 2. Дебютант: неопознанный бот или первый визит гостя считается как один опознанный бот
empty($_SERVER['HTTP_COOKIE'])
and !preg_match('/Yandex|Googlebot|Google-|Applebot|bingbot|Baiduspider|GPTBot|whatsapp|telegram|facebook/i', $_SERVER['HTTP_USER_AGENT'])
and ($_SERVER['HTTP_USER_AGENT'] = 'Debutante');
 
# 3. Гардероб: разуваем гостей, но не персонал
$noise = 'sid|hilit|gclid|yclid|ysclid|fbclid|utm_\w+';
preg_match('/^(?!.*(adm\/|cp\.php|hash=|mark_)).*?(' . $noise . ')=/i', $uri)
and exit(header('Location: ' . rtrim(preg_replace(["/([?&])($noise)=[^&]*(&|$)/i", '/\?&/'], ['$3', '?'], $uri), '?&'), true, 308));

В /assets/javascript/core.js вставил это:

Код: Выделить всё

document.cookie = "checked=1; path=/; max-age=86400; SameSite=Lax";

Начало этого файла выглядит так (весь не привожу ибо длинный):

Код: Выделить всё

/* global bbfontstyle */

document.cookie = "checked=1; path=/; max-age=86400; SameSite=Lax";

var phpbb = {};
phpbb.alertTime = 100;

(function($) {  // Avoid conflicts with other libraries

'use strict';

// define a couple constants for keydown functions.
var keymap = {
	TAB: 9,
	ENTER: 13,
	ESC: 27,
	ARROW_UP: 38,
	ARROW_DOWN: 40
};

var $dark = $('#darkenwrapper');
var $loadingIndicator;
var phpbbAlertTimer = null;
..............................

Бота Debutante [Bot] создал. И вижу его среди гостей.

Что я ещё не сделал? Или что я сделал не так?
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
Kuskow
phpBB 2.0.3
Сообщения: 352
Стаж: 9 лет 10 месяцев
Откуда: 🇰🇿 Караганда
Благодарил (а): 25 раз
Поблагодарили: 34 раза

Re: Атака китайских ботов

Сообщение Kuskow »

Leo Angel писал(а): Вчера 12:20 Бота Debutante [Bot] создал. И вижу его среди гостей
Ааа, тогда всё.
phpBB 3.3.15 • Manticore 17.5 • MariaDB 11.4 (2.8 GB) • Redis • PHP 8.3-FPM • Nginx • HestiaCP • Debian 12 • 4GB DDR4 • 60GB NVMe • 2 vCPU 4GHz
Аватара пользователя
Leo Angel
phpBB 2.0.9
Сообщения: 739
Стаж: 8 лет 2 месяца
Откуда: Израиль
Благодарил (а): 242 раза
Поблагодарили: 94 раза

Re: Атака китайских ботов

Сообщение Leo Angel »

И какой приговор?
Почему эти Алибабайцы :D пасутся у меня как у себя дома? :lol:
Аватара пользователя
Kuskow
phpBB 2.0.3
Сообщения: 352
Стаж: 9 лет 10 месяцев
Откуда: 🇰🇿 Караганда
Благодарил (а): 25 раз
Поблагодарили: 34 раза

Re: Атака китайских ботов

Сообщение Kuskow »

Потому что они используют староподхваченные куки. ну или не знаю - надо смотреть по логам. У меня исчезли мгновенно. Завтра пройдёт, надеюсь. А пока переходим ко второй части Марлезонского балета - углубляемся в Nginx. После изменений не забываем перезапустить Nginx.

Код: Выделить всё

# 1. Статическая блокировка известных ботов
# 1a. Зловредные боты банятся через fail2ban по IP-адресам
if ($http_user_agent ~* "keys-so|python|Firefox/72") { return 444; }
if ($request_uri ~* "wp-|/profile\.php|\.env|\.git|\.aws|\.terraform") { return 444; }
# 1b. Легальным, но нежелательным ботам запрещено только сейчас
#if ($http_user_agent ~* "Mediapartners") { return 403; }

# 2. Поведенческая блокировка наглых ботов без cookies
set $bot_check "";
# 2a. Помечаем точки входа
if ($request_uri ~* "/adm/|ucp\.php|author=") { set $bot_check "A"; }
if ($server_protocol ~ "HTTP/1") { set $bot_check "A"; }
# 2b. Проверка наличия cookies
if ($http_cookie = "") { set $bot_check "${bot_check}C"; }
# 2c. Исключения (ПС и мессенджеры) — обнуляем всё для своих
if ($http_user_agent ~* "Yandex|Googlebot|Google-|Applebot|bingbot|Baiduspider|GPTBot|whatsapp|telegram|facebook") { set $bot_check ""; }
# 2d. Исполнение приговоров
if ($bot_check = "AC") { return 444; }

# 3. Мягкие ответы
# 3b. Системные заглушки
location ^~ /.well-known/acme-challenge/ { allow all; }
location /.well-known/ { log_not_found off; return 204; }
phpBB 3.3.15 • Manticore 17.5 • MariaDB 11.4 (2.8 GB) • Redis • PHP 8.3-FPM • Nginx • HestiaCP • Debian 12 • 4GB DDR4 • 60GB NVMe • 2 vCPU 4GHz
Аватара пользователя
Leo Angel
phpBB 2.0.9
Сообщения: 739
Стаж: 8 лет 2 месяца
Откуда: Израиль
Благодарил (а): 242 раза
Поблагодарили: 94 раза

Re: Атака китайских ботов

Сообщение Leo Angel »

И куда это пишем?
Аватара пользователя
Kuskow
phpBB 2.0.3
Сообщения: 352
Стаж: 9 лет 10 месяцев
Откуда: 🇰🇿 Караганда
Благодарил (а): 25 раз
Поблагодарили: 34 раза

Re: Атака китайских ботов

Сообщение Kuskow »

Это пишем в Nginx. В зависимости от панели управления сайтом места разные могут быть. У меня файл шаблона к сайту, например:
/home/ПОЛЬЗОВАТЕЛЬ/conf/web/ДОМЕН/nginx.ssl.conf_extra
А как у Вас не знаю - может быть, подскажут опытные тут товарищи. Кажется, в других местах это надо писать в какой-то раздел SERVER, но я не уверен.
phpBB 3.3.15 • Manticore 17.5 • MariaDB 11.4 (2.8 GB) • Redis • PHP 8.3-FPM • Nginx • HestiaCP • Debian 12 • 4GB DDR4 • 60GB NVMe • 2 vCPU 4GHz
Аватара пользователя
Leo Angel
phpBB 2.0.9
Сообщения: 739
Стаж: 8 лет 2 месяца
Откуда: Израиль
Благодарил (а): 242 раза
Поблагодарили: 94 раза

Re: Атака китайских ботов

Сообщение Leo Angel »

Похоже, что, действительно, наладилось.
Все Алибабы ушли, новых не появилось. Теперь количество гостей примерно соответствует действительности.
И это без добавок в Nginx.
Продолжаю наблюдать.
Аватара пользователя
Kuskow
phpBB 2.0.3
Сообщения: 352
Стаж: 9 лет 10 месяцев
Откуда: 🇰🇿 Караганда
Благодарил (а): 25 раз
Поблагодарили: 34 раза

Re: Атака китайских ботов

Сообщение Kuskow »

MasterX писал(а): 06.04.2026 18:01 банить можно прямо через админку и по странам и по диапазонам
Да, но нет. Забанил несколько обдачных сетей, через пару дней уже забыл их, а вот надо было выпустить сертификат Let's Encrypt для почты - а фигушки. Еле как догадался, что это из-за блокировки ip-адресов, и то озарение пришло чисто случайно, без участия логики. Представляю, какая паника у меня возникла, когда сертификат для сайта не обновился бы.
phpBB 3.3.15 • Manticore 17.5 • MariaDB 11.4 (2.8 GB) • Redis • PHP 8.3-FPM • Nginx • HestiaCP • Debian 12 • 4GB DDR4 • 60GB NVMe • 2 vCPU 4GHz
MasterX
phpBB 1.4.4
Сообщения: 158
Стаж: 6 лет 1 месяц
Благодарил (а): 24 раза
Поблагодарили: 16 раз

Re: Атака китайских ботов

Сообщение MasterX »

Kuskow писал(а): Вчера 18:09 Да, но нет. Забанил несколько обдачных сетей, через пару дней уже забыл их, а вот надо было выпустить сертификат Let's Encrypt для почты - а фигушки. Еле как догадался, что это из-за блокировки ip-адресов, и то озарение пришло чисто случайно, без участия логики. Представляю, какая паника у меня возникла, когда сертификат для сайта не обновился бы.
Так их хостинг по идее должен нахаляву выдавать и автопродлевать.
Кста, атака прекратилась. 20-30 гостей, вполне реальных лазят.
Аватара пользователя
Kuskow
phpBB 2.0.3
Сообщения: 352
Стаж: 9 лет 10 месяцев
Откуда: 🇰🇿 Караганда
Благодарил (а): 25 раз
Поблагодарили: 34 раза

Re: Атака китайских ботов

Сообщение Kuskow »

Let's Encrypt выдаёт не хостинг, а центр сертификации (ЦС). Чтобы его получить/продлить, панель управления (ПУ) запрашивает новый сертификат для домена. ЦС перед выдчей сертификата должен (хочет) проверить, действительно ли тот, кто запрашивает его (заявитель), владеет этим доменом. Для этого ЦС на запрос нового сертификата высылает уникальный токен, который нужно разместить или в DNS-записи домена, или в файле, доступном с сайта этого домена. Так же проверку владения доменов проводят Google и Яндекс, прежде чем разрешить кому-то просматривать результаты индексации и управлять ею.

Так вот, ЦС Let's Encrypt не смог достучаться до сайта для того, чтобы проверить, тот ли токен разместили, который он выдал. Потому что массив заблокированных адресов затрагивал и сервера сертификатора. Естественно, при обновлении существующего сертификата произошло бы то же самое, он бы не обновился, протух и перестал действовать. Let's Encrypt действует в течение полутора месяцев, большинство панелей управления обновляет его раз в месяц, на всякий случай.
phpBB 3.3.15 • Manticore 17.5 • MariaDB 11.4 (2.8 GB) • Redis • PHP 8.3-FPM • Nginx • HestiaCP • Debian 12 • 4GB DDR4 • 60GB NVMe • 2 vCPU 4GHz
Аватара пользователя
Kuskow
phpBB 2.0.3
Сообщения: 352
Стаж: 9 лет 10 месяцев
Откуда: 🇰🇿 Караганда
Благодарил (а): 25 раз
Поблагодарили: 34 раза

Re: Атака китайских ботов

Сообщение Kuskow »

А ещё GPTBot перестал обходить мой сайт, с 21 марта не появлялся. А раньше каждый день тысячами скачивал страницы. Я его несколько раз то блокировал, то разблокировал, то через Nginx, то в robots.txt. Теперь я окончательно решил, что он мне нужен, а он наоборот, окончательно обиделся и больше не приходит. Что делать - ума не приложу.
phpBB 3.3.15 • Manticore 17.5 • MariaDB 11.4 (2.8 GB) • Redis • PHP 8.3-FPM • Nginx • HestiaCP • Debian 12 • 4GB DDR4 • 60GB NVMe • 2 vCPU 4GHz
Аватара пользователя
Kuskow
phpBB 2.0.3
Сообщения: 352
Стаж: 9 лет 10 месяцев
Откуда: 🇰🇿 Караганда
Благодарил (а): 25 раз
Поблагодарили: 34 раза

Re: Атака китайских ботов

Сообщение Kuskow »

Утро вечера мудренее. Сегодня мы с ИИ проснулись, покумекали ещё и родили новую идею, пуще прежней. Переделывает второй блок "дебютант", теперь он выглядит так:

Код: Выделить всё

# 2. Дебютант: неопознанный бот или первый визит гостя считается как один опознанный бот
empty($_COOKIE['checked'])
and !preg_match('/Yandex|Googlebot|Google-|Applebot|bingbot|Baiduspider|GPTBot|whatsapp|telegram|facebook/i', $_SERVER['HTTP_USER_AGENT'])
and ($_SERVER['HTTP_USER_AGENT'] = 'Debutante');
phpBB 3.3.15 • Manticore 17.5 • MariaDB 11.4 (2.8 GB) • Redis • PHP 8.3-FPM • Nginx • HestiaCP • Debian 12 • 4GB DDR4 • 60GB NVMe • 2 vCPU 4GHz

Вернуться в «phpBB-пространство»