Анализ логов показывает: серверная подмена работает только тогда, когда решение принимается до отдачи HTML, а не после. Если контент меняется уже на клиенте, боты и кеши успевают увидеть исходник, а fingerprint по цепочке запросов остается одинаковым.
Разберем техническую составляющую реализации. Типовая схема: edge-проверка IP, Geo-targeting, User-Agent, referer, cookie-state, затем роутинг на разные backend-ветки. Для этого используют reverse proxy, отдельный origin для «чистого» трафика и правила на уровне Nginx/HAProxy или приложения. Критично не смешивать ответы: один и тот же URL не должен стабильно светить два разных набора сигнатур в коротком окне.
Чаще всего палятся на мелочах:
— одинаковые заголовки Cache-Control и ETag для разных версий;
— несоответствие ссылок, форм и редирект-цепочек;
— утечка через prefetch, Open Graph, JSON-LD, sitemap;
— разный HTML, но одинаковый TLS/HTTP fingerprint и поведение CSP.
Проверка цепочки прохождения запроса проста: делаете контрольные запросы из разных сетей, сравниваете body, headers, timing и логи backend. Если на одном из этапов остается общий артефакт, подмена разваливается. Конфиг готов, можно деплоить — но только после прогрева кеша, разнесения шаблонов и отключения лишних следов в статике. Статистика верифицирована, расхождения исключены.
Клоакинг: разборы
@cloaking_lab_arb
Подмена контента на стороне сервера: где ломается фильтрация и как это чинят
Этот пост опубликован в Telegram-канале Клоакинг: разборы. Подписаться можно по ссылке: @cloaking_lab_arb.