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

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

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 12986
Стаж: 14 лет 8 месяцев
Благодарил (а): 162 раза
Поблагодарили: 2363 раза

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

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

Пчелкин писал(а): Вчера 3:10 Почему вы не хотите поверить что таките "залипоны" и сами хостеры умудряются организовывать?
Сейчас массовые атаки идут, так что это не тот случай
Sergey73
phpBB 1.4.2
Сообщения: 65
Стаж: 9 лет 2 месяца
Благодарил (а): 8 раз
Поблагодарили: 7 раз

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

Сообщение Sergey73 »

Татьяна5 писал(а): Вчера 12:32Сейчас массовые атаки идут...
Как думаете, в дальнейшем "успокоятся" или будет только хуже?
Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 12986
Стаж: 14 лет 8 месяцев
Благодарил (а): 162 раза
Поблагодарили: 2363 раза

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

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

Думаю, что как всегда, через какое-то время закончатся. Они "волнами" проходят
Аватара пользователя
Perfecthus
phpBB 2.0.13
Сообщения: 924
Стаж: 15 лет 5 месяцев
Откуда: Оттуда
Благодарил (а): 53 раза
Поблагодарили: 102 раза

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

Сообщение Perfecthus »

Мне вот это расширение помогло – Cache guests & bots pages. До его установки лезли тысячами, сервак «роняли» по несколько раз на дню, помогала, только перезагрузка сервера на некоторое время. Теперь с расширением серваку «дышится» легко.
Аватара пользователя
Kuskow
phpBB 2.0.2
Сообщения: 336
Стаж: 9 лет 10 месяцев
Откуда: 🇰🇿 Караганда
Благодарил (а): 23 раза
Поблагодарили: 29 раз

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

Сообщение Kuskow »

Я тут вот что подумал. А откуда у пользователей-людей ссылка на форум с параметром 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 раза

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

Сообщение Perfecthus »

Kuskow, Много думаешь – пора действовать! ;)
Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 12986
Стаж: 14 лет 8 месяцев
Благодарил (а): 162 раза
Поблагодарили: 2363 раза

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

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

Kuskow писал(а): Вчера 19:25 А откуда у пользователей-людей ссылка на форум с параметром sid= без куки?
В поисковиках попадается при ненастроенном robots.txt, например
Аватара пользователя
Пчелкин
phpBB 3.3.0
Сообщения: 11317
Стаж: 16 лет 2 месяца
Благодарил (а): 687 раз
Поблагодарили: 126 раз

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

Сообщение Пчелкин »

Татьяна5 писал(а): Вчера 12:32 Сейчас массовые атаки идут, так что это не тот случай
Тань... у меня у хостеров родственничек работал. Он писал о таком не раз - перенаправляют на "нужные" ресурсы "на заказ" легко и просто... Вымогают таким образом "переезды" на более бабловые ресурсы. Всего лишь..
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: Атака китайских ботов

Сообщение Kuskow »

Perfecthus писал(а): Вчера 20:11 Много думаешь – пора действовать!
Ну что ж, извольте! Когда уже написал последнюю идею, вдруг совершенно случайно при очередном стописятом разборе логов проскочила всего лишь одна строчка, которая выбивалась из всего ранее замеченного. Но именно она дала самый ощутимый аргумент в отлове ботов. И вот, пожалуйте, улов за ночь:
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 раза

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

Сообщение Perfecthus »

Пчелкин писал(а): Сегодня 2:52 Вымогают таким образом "переезды" на более бабловые ресурсы.
Многие хостеры этим промышляют.
Аватара пользователя
Leo Angel
phpBB 2.0.9
Сообщения: 724
Стаж: 8 лет 2 месяца
Откуда: Израиль
Благодарил (а): 238 раз
Поблагодарили: 93 раза

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

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

Kuskow писал(а): Сегодня 4:31 уже написал последнюю идею
Код в студию! ;)
Аватара пользователя
Kuskow
phpBB 2.0.2
Сообщения: 336
Стаж: 9 лет 10 месяцев
Откуда: 🇰🇿 Караганда
Благодарил (а): 23 раза
Поблагодарили: 29 раз

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

Сообщение Kuskow »

Теперь сложнее, чем было до этого. Нужно править в трёх местах. Поэтому для чистоты и чтобы для тех, кто вливается в борьбу с этого момента, будем считать, что ничего не делали. То есть, сначала из 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: Атака китайских ботов

Сообщение Kuskow »

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

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));
* Во 2 пункте в строке preg_match указываем только тех ботов, которые у вас зарегистрированы в админке, и которых вы хотите видеть как отдельных у себя на форуме. Не надо там перечислять всех подряд. Больше ни на что это не влияет. И на их доступ к форуму тоже не влияет.
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
Сообщения: 724
Стаж: 8 лет 2 месяца
Откуда: Израиль
Благодарил (а): 238 раз
Поблагодарили: 93 раза

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

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

А index.php опять же заменяется. Тогда я мимо.
Аватара пользователя
Kuskow
phpBB 2.0.2
Сообщения: 336
Стаж: 9 лет 10 месяцев
Откуда: 🇰🇿 Караганда
Благодарил (а): 23 раза
Поблагодарили: 29 раз

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

Сообщение Kuskow »

Чтобы не удалять 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

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