Сейчас массовые атаки идут, так что это не тот случайПчелкин писал(а): Вчера 3:10 Почему вы не хотите поверить что таките "залипоны" и сами хостеры умудряются организовывать?
Атака китайских ботов
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ | Как задавать вопросы | Как устанавливать расширения
Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение
).
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ | Как задавать вопросы | Как устанавливать расширения
Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение
-
Татьяна5
- Поддержка

- Сообщения: 12986
- Стаж: 14 лет 8 месяцев
- Благодарил (а): 162 раза
- Поблагодарили: 2363 раза
Re: Атака китайских ботов
-
Татьяна5
- Поддержка

- Сообщения: 12986
- Стаж: 14 лет 8 месяцев
- Благодарил (а): 162 раза
- Поблагодарили: 2363 раза
Re: Атака китайских ботов
Думаю, что как всегда, через какое-то время закончатся. Они "волнами" проходят
-
Perfecthus
- phpBB 2.0.13
- Сообщения: 924
- Стаж: 15 лет 5 месяцев
- Откуда: Оттуда
- Благодарил (а): 53 раза
- Поблагодарили: 102 раза
Re: Атака китайских ботов
Мне вот это расширение помогло – Cache guests & bots pages. До его установки лезли тысячами, сервак «роняли» по несколько раз на дню, помогала, только перезагрузка сервера на некоторое время. Теперь с расширением серваку «дышится» легко.
-
Kuskow
- phpBB 2.0.2
- Сообщения: 336
- Стаж: 9 лет 10 месяцев
- Откуда: 🇰🇿 Караганда
- Благодарил (а): 23 раза
- Поблагодарили: 29 раз
Re: Атака китайских ботов
Я тут вот что подумал. А откуда у пользователей-людей ссылка на форум с параметром sid= без куки? Ведь эту ссылку можно получить только уже находясь на странице форума. Её нельзя получить извне. И значит, можно спокойно банить таких гостей. Ну или, хотя бы, как минимум, отфутболивать их по 444.
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
-
Perfecthus
- phpBB 2.0.13
- Сообщения: 924
- Стаж: 15 лет 5 месяцев
- Откуда: Оттуда
- Благодарил (а): 53 раза
- Поблагодарили: 102 раза
-
Татьяна5
- Поддержка

- Сообщения: 12986
- Стаж: 14 лет 8 месяцев
- Благодарил (а): 162 раза
- Поблагодарили: 2363 раза
Re: Атака китайских ботов
В поисковиках попадается при ненастроенном robots.txt, напримерKuskow писал(а): Вчера 19:25 А откуда у пользователей-людей ссылка на форум с параметром sid= без куки?
-
Пчелкин
- phpBB 3.3.0
- Сообщения: 11317
- Стаж: 16 лет 2 месяца
- Благодарил (а): 687 раз
- Поблагодарили: 126 раз
Re: Атака китайских ботов
Тань... у меня у хостеров родственничек работал. Он писал о таком не раз - перенаправляют на "нужные" ресурсы "на заказ" легко и просто... Вымогают таким образом "переезды" на более бабловые ресурсы. Всего лишь..
NIKON-D90, AF-S 18-105, AF-S 14-24, AF-S 24-70
-
Kuskow
- phpBB 2.0.2
- Сообщения: 336
- Стаж: 9 лет 10 месяцев
- Откуда: 🇰🇿 Караганда
- Благодарил (а): 23 раза
- Поблагодарили: 29 раз
Re: Атака китайских ботов
Ну что ж, извольте! Когда уже написал последнюю идею, вдруг совершенно случайно при очередном стописятом разборе логов проскочила всего лишь одна строчка, которая выбивалась из всего ранее замеченного. Но именно она дала самый ощутимый аргумент в отлове ботов. И вот, пожалуйте, улов за ночь:
root@navimba:~# awk '{print $9}' /var/log/nginx/domains/navimba.com.log | sort | uniq -c | sort -rn | awk '{printf "%-10s %s\n", $2, $1}'
200: 261834 - отдано страниц phpbb (*.php, кроме file.php), среди них есть и боты, получившие страницу без сессии
204: 115 - ответы Ok без содержимого страницы /.well-known/
301: 429 - перенаправление HHTP => HTTPS
302: 6531 - перенаправление phpBB после действия («Ваше сообщение успешно отправлено...» → 302 → переход в тему)
304: 4594 - для статических файлов "файл не изменился - нет смысла передавать заново"
307: 35 - перенаправление из формы, веротяно "ошибка отправки формы" или ещё что-то такое
308: 76009 - тот самый "гардероб" из моего config.php - перенаправление на страницу без параметров sid=
403: 531 - у меня получает только Mediapartners-Google, потому что нет рекламы - он мне не нужен
404: 2404 - страница не найдена
405: 12 - метод не разрешён для таких URL (часто POST на статику)
410: 119 - наследие бывшего хостера, который в случае превышения лимитов нагрузки переадресовывал сверхлимит на .../hostiman/ и там уже их считал и обрубал, до сих пор расхлёбываю за январь, но теперь вот придумал выдавать им 410 - страницы больше не существует и никогда не появится (авось когда-нибудь перестанут такое запрашивать)
425: 137 - какая-то супер-фишка Nginx
444: 40859 - основной теперь барьер, там много кто
499: 645 - Client Closed Request — это специфический код Nginx, который означает, что клиент сам разорвал соединение, не дождавшись ответа от сервера
В общем, можно считать, ни один бот не получил человеческую страницу (с сессией).
3xx, 4xx - не получили ничего из phpBB, для них даже не открывалась база данных
исключение 404 - для них phpBB работал. Это очень смешно и тупо одновременно, догадаться до такой тупости невозможно, уверен, вы будете глубоко обескуражены, когда узнаете, кто попался в эти ответы "страница не найдена", и это ещё один признак, кого можно банить, но их мало
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
-
Perfecthus
- phpBB 2.0.13
- Сообщения: 924
- Стаж: 15 лет 5 месяцев
- Откуда: Оттуда
- Благодарил (а): 53 раза
- Поблагодарили: 102 раза
-
Leo Angel
- phpBB 2.0.9
- Сообщения: 724
- Стаж: 8 лет 2 месяца
- Откуда: Израиль
- Благодарил (а): 238 раз
- Поблагодарили: 93 раза
-
Kuskow
- phpBB 2.0.2
- Сообщения: 336
- Стаж: 9 лет 10 месяцев
- Откуда: 🇰🇿 Караганда
- Благодарил (а): 23 раза
- Поблагодарили: 29 раз
Re: Атака китайских ботов
Теперь сложнее, чем было до этого. Нужно править в трёх местах. Поэтому для чистоты и чтобы для тех, кто вливается в борьбу с этого момента, будем считать, что ничего не делали. То есть, сначала из
config.php удаляем тот мой код и начнём всё с чистого листа. Сначала напишу, что могут сделать все, и это сразу даст резкую потерю нагрузки на сайт. А потом углубим для тех, у кого есть доступ к Nginx или Apache.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
- Сообщения: 336
- Стаж: 9 лет 10 месяцев
- Откуда: 🇰🇿 Караганда
- Благодарил (а): 23 раза
- Поблагодарили: 29 раз
Re: Атака китайских ботов
Строим барьер для ботов в phpBB. Сразу оговорюсь, канонические методы тут попраны, дальше каждый сам себе решает, насколько это позволительно.
1. {единственное нетрадиционное, но обязательное исправление}
Очень важно: если после обновления версии движка не повторить это исправление, ни один человек на новом устройстве не сможет зайти или зарегистрироваться на форуме.
В файлах своего phpBB редактируем /assets/javascript/core.js и в самом начале этого файла вставляем:
2. Заходим в админку своего phpBB:
2.1. ОБЩИЕ -> Очистить кэш.
2.2. ОБЩИЕ -> Поисковые боты -> Добавить бота.
Название бота: придумываем сами себе, чтобы было понятно вам. Формулировка ни на что не влияет. Варианты для примера: Debutante [Bot], Other, Pseudo.
Соответствие агенту:
Остальные графы формы можно оставить по умолчанию.
3. В конец файла
* Во 2 пункте в строке preg_match указываем только тех ботов, которые у вас зарегистрированы в админке, и которых вы хотите видеть как отдельных у себя на форуме. Не надо там перечислять всех подряд. Больше ни на что это не влияет. И на их доступ к форуму тоже не влияет.
1. {единственное нетрадиционное, но обязательное исправление}
Очень важно: если после обновления версии движка не повторить это исправление, ни один человек на новом устройстве не сможет зайти или зарегистрироваться на форуме.
В файлах своего phpBB редактируем /assets/javascript/core.js и в самом начале этого файла вставляем:
Код: Выделить всё
document.cookie = "checked=1; path=/; max-age=31536000; SameSite=Lax";2. Заходим в админку своего phpBB:
2.1. ОБЩИЕ -> Очистить кэш.
2.2. ОБЩИЕ -> Поисковые боты -> Добавить бота.
Название бота: придумываем сами себе, чтобы было понятно вам. Формулировка ни на что не влияет. Варианты для примера: Debutante [Bot], Other, Pseudo.
Соответствие агенту:
Debutante (тут уже важно, что написано, потому что зашито в 3 пункте).Остальные графы формы можно оставить по умолчанию.
3. В конец файла
config.php добавляем:
Код: Выделить всё
### Барьер для защиты от ботов, атакующих 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. Дебютант: неопознанный бот или первый визит гостя считается как один опознанный бот
empty($_SERVER['HTTP_COOKIE'])
and !preg_match('/Yandex|Googlebot|Applebot|bingbot|Baiduspider|GPTBot/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_)).*?(\/index\.php(?:\?|&|$)|(' . $noise . ')=)/i', $uri)
and exit(header('Location: ' . rtrim(preg_replace(["/([?&])($noise)=[^&]*(&|$)/i", '/\?&/', '/\/index\.php(?:\?|&|$)/i'], ['$3', '?', '/'], $uri), '?&'), true, 308));
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
- Сообщения: 336
- Стаж: 9 лет 10 месяцев
- Откуда: 🇰🇿 Караганда
- Благодарил (а): 23 раза
- Поблагодарили: 29 раз
Re: Атака китайских ботов
Чтобы не удалять index.php, исправьте себе одну последнюю строчку:
Код: Выделить всё
and exit(header('Location: ' . rtrim(preg_replace(["/([?&])($noise)=[^&]*(&|$)/i", '/\?&/'], ['$3', '?'], $uri), '?&'), true, 308));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

