Разработчик под ником BborlasS опубликовал на Хабре статью, в которой рассказал, как анализировал логи nginx своего сайта-визитки и обнаружил, что из 273 уникальных IP-адресов за трое суток только 21 (8%) принадлежал реальным людям. Остальные запросы оказались от ботов, сканеров и краулеров.
Что произошло
Автор создал статический сайт для своей утилиты под Windows, разместил его на дешёвом VPS с nginx и не использовал внешние счётчики, чтобы не нарушать принцип конфиденциальности. Через трое суток он проанализировал сырые логи и увидел 273 уникальных адреса, 165 из которых открыли главную страницу. Однако при детальном разборе выяснилось, что большинство запросов — от ботов.
Метод фильтрации по User-Agent не сработал
Первая попытка отсеять ботов по User-Agent (список известных роботов) отфильтровала лишь 12% запросов. Многие сканеры маскируются под браузеры, поэтому такой подход оказался неэффективным.
Поведенческий признак: загрузка стилей
Автор применил другой метод: он проверил, какие IP-адреса запрашивали не только HTML, но и CSS-файлы (styles.css) или ресурсы из папки /assets/. Браузер человека загружает оформление, а сканеры — нет. С помощью однострочного awk-скрипта он выделил 21 адрес, которые вели себя как браузеры. Это составило 8% от исходных 273.
Скачивания: ни одного пользовательского
За двое суток файл установщика (67 МБ) был полностью скачан 4 раза: трижды — краулером ИИ-компании и один раз — самим автором для проверки. Пользовательских скачиваний не было. Остальные 7 обращений оборвались на первых сотнях килобайт.
Меры по защите сервера
Автор внедрил четыре меры, не затрагивающие поисковую индексацию:
- Обрыв заведомо чужих запросов — nginx возвращает код 444 (закрытие соединения без ответа) на пути вроде /.env, /.git, *.php, /wp-.
- Ограничение частоты запросов — лимит 10 запросов в секунду с burst 30, при превышении — код 429.
- Блокировка через fail2ban — три подозрительных запроса за час ведут к бану на сутки.
- Robots.txt — запрет на скачивание файлов для всех краулеров.
Что это значит
История показывает, что стандартные счётчики и фильтры по User-Agent могут сильно завышать реальную посещаемость. Поведенческие признаки (загрузка статических ресурсов) и анализ логов дают более точную картину. Для проектов, раздающих файлы, важно учитывать, что скачивания могут совершать не люди, а боты, и это влияет на расход трафика.

Комментарии · 0
Войдите, чтобы участвовать в обсуждении.