Ко мне эти боты с адресов 47.79.x.x тоже заходят пачками, но ни одного ответа 200 они не получили - только 403. Из чего делаю вывод, что переделка моего скрипта привела к появлению дыры.
Kuskow писал(а): Сегодня 10:49
Ко мне эти боты с адресов 47.79.x.x тоже заходят пачками, но ни одного ответа 200 они не получили - только 403. Из чего делаю вывод, что переделка моего скрипта привела к появлению дыры.
OK!
Значит, вернусь к Вашему скрипту и проверю. Из своего оставлю только страницу html.
Kuskow писал(а): Сегодня 10:49
Ко мне эти боты с адресов 47.79.x.x тоже заходят пачками, но ни одного ответа 200 они не получили - только 403. Из чего делаю вывод, что переделка моего скрипта привела к появлению дыры.
Это боты сканеры, они ищут уязвимости, им не нужно хождение по ссылкам, поэтому и 403
MasterX, что значит "поэтому"? Этот 403 я им выдал, потому что определил их как ботов. То есть, логика в обратную сторону. Мой скрипт определил бота и запретил ему вход на сайт с ответом 403. И он ни разу не пропустил его к phpBB, а если бы пропустил, было бы 200.
потому что проблема в движке. И ее приходится купировать на уровне .htaccess
Никакие расширения не уберут тяжелые и массовые MySQL-запросы, народ, да проснитесь вы уже!
Последний раз редактировалось MasterX 05.04.2026 13:20, всего редактировалось 1 раз.
Leo Angel писал(а): Сегодня 7:45
Почему так и может ли это говорить о чём-то?
У меня так бывало, когда ссылка появлялась на достаточно крупном ресурсе и была популярно и ее оттуда тянула в другие места и сразу же был всплеск ботов.
Kuskow писал(а): Сегодня 12:03MasterX, что значит "поэтому"? Этот 403 я им выдал, потому что определил их как ботов. То есть, логика в обратную сторону. Мой скрипт определил бота и запретил ему вход на сайт с ответом 403. И он ни разу не пропустил его к phpBB, а если бы пропустил, было бы 200.
Если скрипт внешний, не расширение, PHPBB, то норм!
Если это расширение, то как раз пропустил, потому что его выдал движок! И выдал тогда, когда получил все тяжелые SQL запросы.
Когда 403 выдает сервак, тогда и нет нагрузки на движок, иначе это лишь имитация решения.
Пока разбирался, почему у вас не работает и пропускает некоторых ботов, нашёл ошибку у себя. Так что, сегодняшняя почти окончательная версия выглядит так. Для тех, кто не читал предыдущее обсуждение: этот код нужно добавить в конец файла 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. Домофон: разглядываем пришедшего без cookies
empty($_SERVER['HTTP_COOKIE'])
# Полезным ботам открыты все двери без дополнительных проверок
and !preg_match('/Yandex|Googlebot|Google-|Applebot|bingbot|Yahoo|Baiduspider|GPTBot|whatsapp|telegram|facebookext|meta-ext/i', $ua)
# Запросивших главную или тяжёлые страницы, переключаем на домофон
and (str_ends_with($uri, '/') + str_contains($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 писал(а): Сегодня 13:38
Пока разбирался, почему у вас не работает и пропускает некоторых ботов, нашёл ошибку у себя. Так что, сегодняшняя почти окончательная версия выглядит так. Для тех, кто не читал предыдущее обсуждение: этот код нужно добавить в конец файла 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. Домофон: разглядываем пришедшего без cookies
empty($_SERVER['HTTP_COOKIE'])
# Полезным ботам открыты все двери без дополнительных проверок
and !preg_match('/Yandex|Googlebot|Google-|Applebot|bingbot|Yahoo|Baiduspider|GPTBot|whatsapp|telegram|facebookext|meta-ext/i', $ua)
# Запросивших главную или тяжёлые страницы, переключаем на домофон
and (str_ends_with($uri, '/') + str_contains($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, Ваш вариант последний, не пускает никого, я просто перешел с Гуру к вам и мне предложило сразу же обновить страницу, все же это будет отталкивать если для всех входящих будет так или это меня е пропустил только, хотя я просто перешел и все. Браузер Яндекса