User-Agent и мобильный fingerprint: где палится прокладка
User-Agent сам по себе уже слабый сигнал, но в связке с мобильным fingerprint он быстро превращается в индикатор фрода. Анализ логов показывает: фильтры редко смотрят только на строку UA, они сопоставляют её с платформой, экраном, шрифтами, таймзоной, языком, touch-событиями и поведением браузера.
Проверка цепочки прохождения запроса начинается с банального: совпадает ли UA с реальной ОС, версией движка и типом устройства. Если в заголовке Android, а JS-отпечаток отдаёт десктопные размеры, mouse-only паттерны и набор свойств, характерный для эмулятора, запрос уходит в серую зону. То же самое с iPhone UA на устройстве, где нет типичных WebKit-ограничений и мобильного viewport.
Дальше смотрят на связку признаков: referer, Accept-Language, часовой пояс, память устройства, DPR, WebGL, Canvas, Audio и список доступных сенсоров. Один параметр можно подменить, но согласованность пачки параметров подделать заметно сложнее. Именно здесь всплывают ошибки прокладок, которые пытаются маскироваться “как мобильные”, но забывают про viewport meta, touchstart и корректный порядок инициализации JS. ⚙️
Разбирать нужно не только фронт, но и backend-логи: одинаковые отпечатки с разных IP, повторяющиеся UA-цепочки, одинаковая глубина прокрутки и тайминги кликов. Если fingerprint стабилен, а транспорт прыгает, статистика быстро выдаёт искусственную природу трафика.
Конфиг готов, можно деплоить только после сверки: UA, JS-отпечаток и сетевой слой должны быть согласованы. Иначе система увидит не пользователя, а набор несостыкованных признаков.
Клоакинг: разборы
@cloaking_lab_arb
User-Agent и мобильный fingerprint: где палится прокладка
Этот пост опубликован в Telegram-канале Клоакинг: разборы. Подписаться можно по ссылке: @cloaking_lab_arb.