Как отсеивать мусорный трафик на Nginx/Apache без дыр в логике прокси
Разберем техническую составляющую реализации. Фильтрация на веб-сервере работает только тогда, когда вы проверяете не один параметр, а цепочку: IP, Host, User-Agent, referer, cookie и поведение запроса. Один заголовок подделывается в два клика, а вот согласованность всего набора уже дает сигнал для отбора.
В Nginx базовый слой — map + if + return. Через map удобно собирать белые/черные списки по UA и рефереру, а дальше резать поток на уровне server/location до отдачи контента. Если нужен более жесткий контроль, добавляйте проверку cookie и обязательного заголовка X-Requested-With. Анализ логов показывает: одиночные правила редко живут долго, а связка условий держится заметно лучше.
В Apache логика строится через mod_rewrite и mod_setenvif. Сначала помечаете подозрительные запросы по признакам, потом отдаете 403, 204 или редирект на пустую страницу. Не пытайтесь фильтровать все через один rewrite-rule — это превращается в неуправляемый комок. Проверка цепочки прохождения запроса должна быть линейной: приняли, классифицировали, отрезали, залогировали.
Отдельно смотрите на несостыковки: мобильный UA с пустым referer, браузерный fingerprint без cookie, частые смены IP в одной сессии. Такие запросы лучше не банить сразу, а уводить в серую зону: урезанный ответ, задержка, пустой контент. Конфиг готов, можно деплоить. Статистика верифицирована, расхождения исключены: фильтрует не магия, а дисциплина на уровне правил и логов.
Клоакинг: разборы
@cloaking_lab_arb
Как отсеивать мусорный трафик на Nginx/Apache без дыр в логике прокси
Этот пост опубликован в Telegram-канале Клоакинг: разборы. Подписаться можно по ссылке: @cloaking_lab_arb.