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

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

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

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

Сообщение Kuskow »

southklad писал(а): Вчера 21:15 А то у меня 7.4 стоит к сожалению
Для PHP 7.4 нужно заменить современные функции str_ends_with() и str_contains() на их классические аналоги через strpos() и substr() (или preg_match). Эта версия и для 8.x тоже подходит, но не так красиво.

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

### Барьер для защиты от ботов, атакующих phpBB-сайты
### Авторы: Kuskow & AI on Google Search
if (PHP_SAPI === 'cli') { return; } // В cli не надо ничего проверять
 
# 1. Шлагбаум: извесных ботов не пускаем даже к дому
preg_match('/ChatGPT|keys-so|python|Firefox\/72|Mediapartners/i', $ua = $_SERVER['HTTP_USER_AGENT']) +
preg_match('/wp-|profile\.php/i', $uri = $_SERVER['REQUEST_URI'])
and die(header('HTTP/1.1 403'));
 
# 2. Домофон: разглядываем пришедшего без cookies
empty($_SERVER['HTTP_COOKIE'])
# Полезным ботам открыты все двери без дополнительных проверок
and !preg_match('/Yandex|Googlebot|Google-|Applebot|bingbot|Yahoo|Baiduspider|GPTBot|whatsapp|telegram|facebookext|meta-ext/i', $ua)
# Запросивших главную или тяжёлые страницы, переключаем на домофон (PHP 7.4)
and (preg_match('/\/$|\/\?/', $uri) + preg_match('/index|view|member|search|post|app|ucp|config/i', $_SERVER['SCRIPT_NAME']))
# Домофон через закрытую дверь спрашивает: "Кто там?"
and die(header('HTTP/1.1 403') . '<meta charset=utf-8><h1>Если Вы человек, обновите эту страницу - и всё увидите. Такой вот у нас антиспам.</h1><script>document.cookie="human=1;Path=/;Max-Age=600;SameSite=Lax"</script>');
 
# 3. Гардероб: разуваем гостей, но не персонал
$noise = 'sid|hilit|gclid|yclid|ysclid|fbclid|utm_\w+';
preg_match('/^(?!.*(adm\/|cp\.php|hash=|mark_)).*?(\/index\.php(?:\?|&|$)|(' . $noise . ')=)/i', $uri)
and exit(header('Location: ' . preg_replace(["/([?&])($noise)=[^&]*(&|$)/i", '/\/index\.php(?:\?|&|$)/i'], ['$1', '/'], $uri), true, 308));
Последний раз редактировалось Kuskow 05.04.2026 17:56, всего редактировалось 1 раз.
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.2
Сообщения: 315
Стаж: 9 лет 10 месяцев
Откуда: 🇰🇿 Караганда
Благодарил (а): 23 раза
Поблагодарили: 24 раза

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

Сообщение Kuskow »

Leo Angel писал(а): Сегодня 10:52 Из своего оставлю только страницу html.
А если дело в ней, а точнее, в добавленной кнопке?
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.2
Сообщения: 315
Стаж: 9 лет 10 месяцев
Откуда: 🇰🇿 Караганда
Благодарил (а): 23 раза
Поблагодарили: 24 раза

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

Сообщение Kuskow »

dotez писал(а): Сегодня 12:39 скрипт который в коммон рнр вносили перестал помогать
Он может даже и вообще не помогал. Это слишком старая версия, уже надо её выкинуть и поставить новую.
MasterX писал(а): Сегодня 13:33 Если скрипт внешний, не расширение, PHPBB, то норм!
Да, поэтому засовываем его в config.php
MasterX писал(а): Сегодня 13:33 Когда 403 выдает сервак, тогда и нет нагрузки на движок, иначе это лишь имитация решения.
403 выдаёт сервак по команде PHP, которую ему, в свою очередь даёт этот скрипт. Нагрузки на движок форума нет, потому что до него (до движка) дело не доходит, даже база не открывается и параметры не разбираются.
Leo Angel писал(а): Сегодня 14:05 А в чём была ошибка, если не секрет?
Ой, там вообще была написана такая чушь, что аж стыдно сказать. Да уже и наполовину она забылась. В общем, перенаправление главной страницы с /index.php на / было только для ботов, и даже там оно не срабатывало.

Отправлено спустя 13 минут 21 секунду:
southklad писал(а): Сегодня 14:05 Ваш вариант последний, не пускает никого, я просто перешел с Гуру к вам и мне предложило сразу же обновить страницу
так это же прекрасно! Значит всё работает правильно. Так и задумано. Всех, кто не заходил на форум как пользователь/читатель, отталкиваем. Как только Вы станете читателем и увидите хоть одну страницу форума, это сообщение на Вашем устройстве перестанет появляться. А пока Вы для форума - никто. Если он Вам нужен - обновите страницу и увидите, что там. Если не нужен - форум на Вас ничего не тратит: ни процессор, ни SQL, ни PHP, ни трафик.
southklad писал(а): Сегодня 14:05 все же это будет отталкивать если для всех входящих будет так
Вы обновили или постеснялись? Если Вас не оттолкнуло, то и сотальные люди тоже не дураки. Вот когда будет отталкивать, тогда и будем думать. Пока что за двое суток ни одного человека, зашедшего из поиска, это не оттолкнуло - все (100%) обновили страницу и стали читать форум.

Не хотим пугать людей - кормим ботов. Не хотим кормить ботов - надеемся на разум человеческий.
  • Кто ходил хоть раз на этот форум, те вообще такую надпись не увидят.
  • Кто зашёл на форум первый раз (в том числе, из поисковиков) - один раз прочитают, обновят страницу и больше не встретятся с этой надписью.
  • Полезные боты (Google, Yandex) даже не узнают о существовании такой надписи.
  • Бесполезные боты получат отлуп 403 и тоже не будут анализировать этот текст, хоть и получат его вместе с кодом ошибки.
В Cloudflare делается всё то же самое, и никого это не смущает.
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
Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 12982
Стаж: 14 лет 7 месяцев
Благодарил (а): 162 раза
Поблагодарили: 2360 раз

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

Сообщение Татьяна5 »

Kuskow писал(а): Сегодня 17:53 Полезные боты (Google, Yandex) даже не узнают о существовании такой надписи.
Со своих проверщиков, заходящих под гостями, попадут на 403-ю
Аватара пользователя
Kuskow
phpBB 2.0.2
Сообщения: 315
Стаж: 9 лет 10 месяцев
Откуда: 🇰🇿 Караганда
Благодарил (а): 23 раза
Поблагодарили: 24 раза

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

Сообщение Kuskow »

А какой User-Agent у их проверщиков?
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
Сообщения: 144
Стаж: 6 лет 1 месяц
Благодарил (а): 23 раза
Поблагодарили: 13 раз

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

Сообщение MasterX »

Kuskow писал(а): Сегодня 18:21 А какой User-Agent у их проверщиков?
Сударь, вы серьезно? Вы не можете отличить полезных ботов от скреперов?
Хотя это сразу видно и по IP и по UA.
У людей так страницы из поиска массово начнут вылетать..
Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 12982
Стаж: 14 лет 7 месяцев
Благодарил (а): 162 раза
Поблагодарили: 2360 раз

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

Сообщение Татьяна5 »

Kuskow писал(а): Сегодня 18:21 А какой User-Agent у их проверщиков?
Как и у обычных людей
Аватара пользователя
Kuskow
phpBB 2.0.2
Сообщения: 315
Стаж: 9 лет 10 месяцев
Откуда: 🇰🇿 Караганда
Благодарил (а): 23 раза
Поблагодарили: 24 раза

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

Сообщение Kuskow »

MasterX писал(а): Сегодня 18:42 У людей так страницы из поиска массово начнут вылетать..
Когда начнут? Сколько времени должно пройти, чтобы они начали вылетать?
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
Сообщения: 144
Стаж: 6 лет 1 месяц
Благодарил (а): 23 раза
Поблагодарили: 13 раз

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

Сообщение MasterX »

пары дней 403 ошибки хватит для исключения страницы из поиска.

Обычно робот возвращается через 2–5 дней, чтобы проверить, не была ли ошибка случайной. Если ответ 403 сохраняется:
- Google: Начнет постепенно занижать позиции и помечать страницу как невалидную. Полное удаление из индекса обычно занимает от 1 до 2 недель.
- Яндекс: Может держать страницу в базе чуть дольше, но пометка «Ошибка доступа» появится в Вебмастере в течение 3–7 дней.


Если кривой скрипт «закрыл» весь сайт кодом 403, ситуация становится критической, так как это напрямую бьет по краулинговому бюджету и позициям.

Вот что произойдет и как быстро нужно действовать:

Последствия для всего сайта

- Мгновенная остановка обхода: Робот, столкнувшись с 403 на главной и внутренних страницах, прекращает индексацию. Он понимает, что доступа нет ко всей структуре.
- Потеря позиций: Если сайт отдает 403 более 24–48 часов, поисковики начинают массово выкидывать страницы из выдачи, так как не могут подтвердить наличие контента.
- Пометка «Сайт может быть взломан»: Иногда резкая смена ответов сервера на 403 интерпретируется алгоритмами как защитная реакция при взломе или технических проблемах, что снижает доверие к домену.
Аватара пользователя
Kuskow
phpBB 2.0.2
Сообщения: 315
Стаж: 9 лет 10 месяцев
Откуда: 🇰🇿 Караганда
Благодарил (а): 23 раза
Поблагодарили: 24 раза

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

Сообщение Kuskow »

Ну что тогда, откат? Удаляем этот скрит из config.php и кормим ботов дальше.
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-пространство»