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

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

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Аватара пользователя
Leo Angel
phpBB 2.0.9
Сообщения: 742
Стаж: 8 лет 2 месяца
Откуда: Израиль
Благодарил (а): 242 раза
Поблагодарили: 94 раза

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

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

Этот способ (без последней редакции второго блока) очень мне помог. Всё "злонамеренное" исчезло в принципе. Изредка появляются гости (1-2 максимум), отмеченные расширением Antibot 42 как спам-боты, а так исключительно зарегистрированные пользователи и живые гости.
Продолжаю наблюдать...
Аватара пользователя
Kuskow
phpBB 2.0.3
Сообщения: 360
Стаж: 9 лет 10 месяцев
Откуда: 🇰🇿 Караганда
Благодарил (а): 25 раз
Поблагодарили: 34 раза

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

Сообщение Kuskow »

Сделайте последнее изменение - оно и лучше, и правильнее. Сегодня с утра у меня был набег умных ботов, которые хватают куки phpBB, да ещё и запоминают их надолго. А с этим исправлением, как раз, вообще всех вырезали. Завтра соберу все версии в кучу и напишу отдельным сообщением.
MasterX
phpBB 1.4.4
Сообщения: 158
Стаж: 6 лет 1 месяц
Благодарил (а): 24 раза
Поблагодарили: 16 раз

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

Сообщение MasterX »

Kuskow писал(а): 12.04.2026 4:35 А ещё GPTBot перестал обходить мой сайт, с 21 марта не появлялся. А раньше каждый день тысячами скачивал страницы. Я его несколько раз то блокировал, то разблокировал, то через Nginx, то в robots.txt. Теперь я окончательно решил, что он мне нужен, а он наоборот, окончательно обиделся и больше не приходит. Что делать - ума не приложу.
Может написать в чатжпт, типа простите, извините был неправ? Запускай опять своего бота. 😊👍
Аватара пользователя
Kuskow
phpBB 2.0.3
Сообщения: 360
Стаж: 9 лет 10 месяцев
Откуда: 🇰🇿 Караганда
Благодарил (а): 25 раз
Поблагодарили: 34 раза

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

Сообщение Kuskow »

Leo Angel писал(а): 09.04.2026 10:51 А index.php опять же заменяется. Тогда я мимо.
Вот тут я смалодушничал и стал переписывать код. А этого вообще можно было не делать, и мы бы тогда не застряли во временной петле. Вместо написания отдельного кода (даже одной строки) для index, достаточно заменить это слово на любое другое, которое никогда не встретится в URL. Например: index.php => beliber.da. Да же?
Аватара пользователя
Leo Angel
phpBB 2.0.9
Сообщения: 742
Стаж: 8 лет 2 месяца
Откуда: Израиль
Благодарил (а): 242 раза
Поблагодарили: 94 раза

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

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

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

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

Сообщение Kuskow »

MasterX писал(а): 12.04.2026 23:16 Может написать в чатжпт, типа простите, извините был неправ?
Я спрагивал у него - сказал, что это бесполезно, да и некуда писать.

Отправлено спустя 11 минут 10 секунд:
Leo Angel, про манифест - ещё раз, какое у Вас там расширение для push-уведомлений в браузере?
Аватара пользователя
Leo Angel
phpBB 2.0.9
Сообщения: 742
Стаж: 8 лет 2 месяца
Откуда: Израиль
Благодарил (а): 242 раза
Поблагодарили: 94 раза

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

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

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

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

Сообщение Kuskow »

Расширение Web Push Notifications застревает из-за того, что скрипт «Гардероб» выдает редирект 308 на запросы app.php/webpush/manifest, который браузер не обрабатывает. Проблема устраняется добавлением webpush в список исключений регулярного выражения (preg_match), что позволяет запросам манифеста проходить напрямую.
(adm\/|cp\.php|hash=|mark_|webpush)
Аватара пользователя
Kuskow
phpBB 2.0.3
Сообщения: 360
Стаж: 9 лет 10 месяцев
Откуда: 🇰🇿 Караганда
Благодарил (а): 25 раз
Поблагодарили: 34 раза

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

Сообщение Kuskow »

Мы с ИИ, как обычно, утром нашли ещё одну зацепку и за неё вышвырнули остатки ботов с форума. Так что, теперь публикую [почти] окончательный релиз. И описываю полный процесс установки, как будто ничего не было. Если раньше устанавливали этот скрипт, то первые два этапа пропускаем, выполняем только третий. На своём форуме проверил (кроме AJAX), с PHP 7.4-8.5 полностью совместимо. И не важно, находится ли форум в корне сайта или в отдельной папке - будет работать и так, и сяк, ничего исправлять для этого не нужно.

Строим барьер для ботов в phpBB.
Сразу оговорюсь, канонические методы попраны, каждый сам себе решает, насколько это позволительно.

1. {единственное нетрадиционное, но обязательное исправление}
Очень важно повторить это исправление после каждого обновления версии движка, иначе ни один человек на новом устройстве не сможет зайти или зарегистрироваться на форуме.
В файле своего phpBB /assets/javascript/core.js в самом начале вставляем:

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

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

2. Заходим в админку своего phpBB:
2.1. ОБЩИЕ -> Очистить кэш.
2.2. ОБЩИЕ -> Поисковые боты -> Добавить бота.
Название бота: Debutante [Bot] (можно придумать своё, например, Other Bots, Pseudo).
Соответствие агенту: Debutante (тут важно написать точно так же, как во 2 блоке 3 пункта).
Остальные графы формы можно оставить по умолчанию.

3. В конец файла config.php добавляем:

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

### Барьер для защиты от ботов, атакующих phpBB-сайты
### Авторы: Kuskow & AI on Google Search
if (preg_match('/GET|HEAD/', $_SERVER['REQUEST_METHOD'] ?? 'cli')) { // когда этот скрипт полезен

# 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(http_response_code(403));

# 2. Гардероб: разуваем гостей, но не персонал
!preg_match('/(adm\/|cp\.php|hash=|mark_|webpush)/i', $uri)
and ($uri = rtrim(str_replace('?&', '?', preg_replace("/&(sid|hilit|gclid|yclid|ysclid|fbclid|utm_\w+)=[^&]*/i", '', str_replace(['/index.php', '?'], ['/', '?&'], $uri))), '?&')) !== $_SERVER['REQUEST_URI']
and exit(header('Location: ' . $uri, true, 308));

# 3. Дебютант: неопознанный бот или первый визит гостя считается как один опознанный бот
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');
}

* ChatGPT в блоке #1 - это совсем не то, о чём вы подумали. Сюда же можно добалять нежелательных ботов по их User-Agent, но надо быть предельно остороными, ведь совпадение с браузером реального пользователя мгновенно выкосит таких пользовалей с форума.
** Если у вас старница /index.php отличается от / и это важно - поменяйте слово "index" на "bindex" или "shmindex" в блоке #2.
*** В блоке #3 в строке preg_match указываем только тех ботов, которые у вас зарегистрированы в админке. Не надо там перечислять всех подряд. Это влияет только на то, будут ли они отображаться отдельным словом на главной странице. На их доступе к форуму это никак не отразится.
Аватара пользователя
Leo Angel
phpBB 2.0.9
Сообщения: 742
Стаж: 8 лет 2 месяца
Откуда: Израиль
Благодарил (а): 242 раза
Поблагодарили: 94 раза

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

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

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

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

Сообщение Kuskow »

Kuskow писал(а): 13.04.2026 12:243.
Хм, опять забыл.

4. После установки проверить:
  • Переход на главную страницу сайта и главную страницу форума
  • Вход со своим логином, переход в панель управления форумом, выход из панели, просмотр своего и чужого профиля, поиск по теме, Непрочитанные сообщения, Ваши сообщения, выход пользователя из форума
  • Открытие в новом окне в режиме инкогнито (каждый раз открывая и закрывая окно): главной страницы форума, страницы с разделом, первой и последней страницы темы, удалить куки, войти и выйти со своим логином, зарегистрироваться на форуме, подтвердить e-mail из письма
5. Зайти на главную страницу форума и посмотреть временной интервал "(основано на активности пользователей за последние *** минут)". И вот после установки скрипта (изменения config.php) через этот интервал или позже: войти в админку форума и сделать Сброс рекорда посещаемости. Только тогда вы будете видеть реальную картину, сколько людей и полезных ботов тусуются на вашем форуме. Потом если захочется накрутить этот параметр, просто отключаем на недельку эту бот-защиту (удаляем из config.php).

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