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

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

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

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

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

Kuskow писал(а): Вчера 15:04 ...я стесняюсь делиться своими мыслями, идеями... Мне кажется, что они слишком наивные.
Лучше СПРОСИТЬ глупость, чем её СДЕЛАТЬ!
Аватара пользователя
Kuskow
phpBB 2.0.4
Сообщения: 409
Стаж: 10 лет
Откуда: 🇰🇿 Караганда
Благодарил (а): 27 раз
Поблагодарили: 38 раз

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

Сообщение Kuskow »

Ага, но у меня так не работает.
Аватара пользователя
Nekstati
Поддержка
Поддержка
Сообщения: 3356
Стаж: 17 лет 3 месяца
Благодарил (а): 19 раз
Поблагодарили: 574 раза

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

Сообщение Nekstati »

Ne_Guru, Kuskow, создание иллюзии своей продвинутости - самый полезный для человека скилл.
Аватара пользователя
Kuskow
phpBB 2.0.4
Сообщения: 409
Стаж: 10 лет
Откуда: 🇰🇿 Караганда
Благодарил (а): 27 раз
Поблагодарили: 38 раз

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

Сообщение Kuskow »

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

Если раньше устанавливали этот скрипт, то первые два этапа пропускаем, а в третьем нужно не добавлять скрипт в config.php, а заменять прежнюю версию скрипта в этом файле.

На своём форуме проверил (кроме AJAX), с PHP 7.4-8.5 полностью совместимо. И не важно, находится ли форум в корне сайта или в отдельной папке - будет работать и так, и сяк, ничего исправлять для этого не нужно.

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

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

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

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

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

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

### Барьер для phpBB, версия 3. Авторы: Kuskow & AI on Google Search

if (empty($_COOKIE['checked'])) # Этот кук есть только у людей
{
$uri = $_SERVER['REQUEST_URI'];

# 1. Шлагбаум: всем ботам разрешены только страницы и аватары, с правильным порядком параметров
!preg_match('#^/$|index.php|viewforum.php|viewtopic|avatar|webpush#i', $uri)
+preg_match('#view(topic|forum)\.php\?start=#i', $uri)
and exit(http_response_code(403));

# 2. Гардероб: разуваем гостей, но не персонал
!preg_match('/(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. Дебютант: неопознанный бот или первый визит гостя считается как один опознанный бот
$_SERVER['HTTP_USER_AGENT'] = 'Debutante';
}
* Если у вас старница /index.php отличается от / и это важно - поменяйте слово "index" на "bindex" или "shmindex" в блоке #2.
Vlad__
phpBB 2.0.7
Сообщения: 576
Стаж: 9 лет 6 месяцев
Благодарил (а): 243 раза
Поблагодарили: 53 раза

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

Сообщение Vlad__ »

Kuskow писал(а): Вчера 19:28 # 1. Шлагбаум: всем ботам разрешены только страницы и аватары, с правильным порядком параметров
!preg_match('#^/$|index.php|viewforum.php|viewtopic|avatar|webpush#i', $uri)
+preg_match('#view(topic|forum)\.php\?start=#i', $uri)
and exit(http_response_code(403));
А если какое-либо расширение добавляет на форум страницу вида /extpage.php ? Бот ее не получит, получается? Ручками нужно у себя вылавливать кастомные страницы и добавлять в код? Я уже и не помню сколько у меня таких )
Ne_Guru
phpBB 1.2.1
Сообщения: 24
Стаж: 4 дня
Благодарил (а): 3 раза

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

Сообщение Ne_Guru »

Черт знает что...
Похоже на DDOC-атаку
stat3.jpg
Завтра буду разбираться... :(
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
Kuskow
phpBB 2.0.4
Сообщения: 409
Стаж: 10 лет
Откуда: 🇰🇿 Караганда
Благодарил (а): 27 раз
Поблагодарили: 38 раз

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

Сообщение Kuskow »

Vlad__ писал(а): Вчера 20:50 Ручками нужно у себя вылавливать кастомные страницы и добавлять в код?
Да, именно так. Но сначала подумать: а вдруг слово "нужно" тут лишнее. Настолько ли уникальный контент на этих страницах, что он обязателен в выдаче поисковиков? Увидит ли новый пользователь информацию в таком виде, чтобы захотеть тут зарегистрироваться?

Отправлено спустя 1 час 51 минуту 6 секунд:
Утро вечера мудренее, оказывается. Вчера я выложил код с ошибками, прошу прощения, он неправильно отрабатывал в cli (cron). Сейчас выложу исправленный.
Аватара пользователя
Kuskow
phpBB 2.0.4
Сообщения: 409
Стаж: 10 лет
Откуда: 🇰🇿 Караганда
Благодарил (а): 27 раз
Поблагодарили: 38 раз

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

Сообщение Kuskow »

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

Если раньше устанавливали этот скрипт, то первые два этапа пропускаем, а в третьем нужно не добавлять скрипт в config.php, а заменить прежнюю версию скрипта в этом файле.

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

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

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

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

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

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

### Барьер для phpBB, версия 3. Авторы: Kuskow & AI on Google Search

if (isset($_SERVER['REQUEST_METHOD']) && empty($_COOKIE['checked'])) # Этот кук есть только у людей
{
$uri = $_SERVER['REQUEST_URI'];
$ua = $_SERVER['HTTP_USER_AGENT'] ?? '';

# 1. Шлагбаум закрыт для плохих ботов, методов и запросов
!preg_match('#/$|/(index|file)\.php|/view(forum|topic)\.php\?[ftp]=|webpush#i', $uri)
+preg_match('#ChatGPT|keys-so|python|Firefox\/72#i', $ua)
and exit(http_response_code(403));

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

# 3. Хороших ботов и дебютантов объединяем в одном аккаунте бота без сессии
$_SERVER['HTTP_USER_AGENT'] = 'Debutante';
}

* ChatGPT - это совсем не то, о чём вы подумали
* Если у вас страница /index.php отличается от / и это важно - поменяйте слово "index" на "bindex" или "shmindex" в блоке #2.
Ne_Guru
phpBB 1.2.1
Сообщения: 24
Стаж: 4 дня
Благодарил (а): 3 раза

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

Сообщение Ne_Guru »

Nekstati писал(а): Вчера 14:34
Ne_Guru писал(а): Вчера 12:42 Кол-во пользователей на форуме показывается адекватное, но вот нагрузки - довольно высокие.
На самом-то деле кол-во посетителей осталось прежним, сколько-то сотен или тысяч, и на каждого из них сервер запускает обработку PHP. Мой скрипт не даёт запуститься тяжёлым скриптам форума и вызовам БД, когда обнаруживает бота, - но интерпретатор PHP всё равно запускается. В этом отличие от защиты, прописанной непосредственно в конфиге сервера, как описывали выше - там очередь до PHP не доходит. Пробуйте. Разница в нагрузке может быть многократная.

Смысл моего скрипта в том, что админу обычно удобнее прописать алгоритм защиты в PHP, понять такой алгоритм ему тоже проще, да и советы ИИ по PHP более предметные, чем по Nginx. Но защита через Nginx в любом случае эффективнее по нагрузке.
Nekstati, простите за задержку с ответом.
Просто я, к сожалению, практически ничего не понял из того, что вы написали. :(
Я вас очень уважаю (оказывается, у меня на форуме стояло расширение antibot 42, написанное вами еще в 2015 году!), но являюсь не то, что чайником, а даже к нему не приблизился.

Я пока оставил ваш скрипт, нагрузка у меня взлетела (думаю, не из-за этого сприпта), включил DDOS-защиту,
ddos.jpg
обратился в техподдержку хостера в надежде, что они заблокируют этих "ботов" по ip-адресам.
У вас нет необходимых прав для просмотра вложений в этом сообщении.

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