Защита от спам ботов и DDOS атак

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Загрузка...

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

Встречался с подобными нагрузками и переборами всего, что есть на сайте где то в 2017 и 2020 году, так, что небольшой скриптик остался где-то.

Проблема в следующем:

  1. Хостинг объявил, что нагрузка на базу данных выросла примерно в 100 раз.
  2. Сайт отказывался работать и уходил в Ошибку 503
  3. В поддержке сказали что очень медленные запросы в базу данных и то что они ничего сделать не могут.

Решено было искать причину, так как до этого все работало норм и нагрузка не превышала лимиты даже при большом трафике.

Что было сделано:

  1. Первым делом зашел в админку сайта и перевел его в режим обслуживания, ошибки пропали так как все кроме админа видели заглушки страниц. А у администратора все страницы открывались и работали в штатном режиме.
  2. Далее зашел через putty на сервер и решил посмотреть что да как:

Узнать какие процессы и кто их создает на сервере:

Увидел что большинство самых трудоресурсных процессов вызвано с левых IP адресов.

Просканировал айпишники, штук так 40 были с bc.googleusercontent.com и большинство начинаются с 35., 45., 46.,5. и т.д.

И все эти злокачественные IP вели на провайдера — Google LLC. Сначала подумал, что бот, а потом вспомнил, что можно было когда то с помощью гугла положить сайт, но это уже другая история:)

Да и еще: Чтобы понять, почему порождаются много процессов, нужно во время самой ошибки сделать трассировку системных процессов с помощью утилиты strace.  Для этого после запуска ps aux запускаем следующую команду с указанием PID

Далее начал поиски того, что когда то делал, и нашел две версии.

Версия №1: сделать ссылку на страницы с пикселем для того, чтобы бот перешел по ней и попал в ловушку-бан.

Размещаем где то в конце странице, допустим какую то ссылку с картинкой.

Далее создаем в корне сайта папку bot_ban и помещаем туда картинку 1х1 px и создаем файлик block_bot.php

Внутри файла block_bot.php вставляем следующий код:


Так вот этот метод не сработал, так как этот типо гуглбот не переходил по ссылкам на сайте, а заранее по подготовленному списку урл переходил на страницу где есть фильтры и самая большая нагрузка на базу данных.

Версия №2: более продвинутый блокировщик

Было принято решение — сделать немного другую защиту от бота. В шаблоне сайта, в самом низу, вставил php код:


Вроде после этого, бот немного приутих, так как большинство Ip попало в BAN

Да и еще, как то делал блокировку через htaccess, но только через IP,  а вот через указание домена не получилось. Если кто знает, что да как, напишите буду благодарен!

🙂

PS: немного доработал вывод сообщения — добавил html в exit()

А также, в message дополнительно встроил счетчик попыток обновления страницы для наглядности.

5 3 votes
Рейтинг постов

Опубликовано: 06.05.2025 в 11:39

Subscribe
Notify of
guest

2 Комментарий
oldest
newest most voted
Inline Feedbacks
View all comments
dekorlife

Блин походу не у одного у меня такая проблема
тоже гугл досит почерному а хост молчит
сделал все как написано по инструкции довольно просто — работает и это радует!

2
0
Would love your thoughts, please comment.x
erbaf4f0lcx71xj7