1. Что такое Client Hints в идентификации браузеров?
Client Hints (CH) — это HTTP-механизм, позволяющий сайтам запрашивать атрибуты устройства и браузера напрямую у клиента, дополняя (или заменяя) традиционный парсинг User-Agent.
С постепенным отказом от полных строк User-Agent в Chrome, Firefox и Edge, Client Hints стали основным источником отпечатков, раскрывая:
- Модель и бренд устройства (
Sec-CH-UA-Model,Sec-CH-UA-Platform) - Версию и вендора браузера (
Sec-CH-UA,Sec-CH-UA-Full-Version-List) - Размеры экрана (
Sec-CH-Viewport-Width,Sec-CH-Width) - Предпочитаемый язык и кодировку (
Sec-CH-Lang,Sec-CH-Prefers-Reduced-Motion) - Состояние железа (
Sec-CH-Save-Data,Sec-CH-DPRдля плотности пикселей)
В отличие от User-Agent, Client Hints требуют явного разрешения сервера (через заголовок Accept-CH), но многие трекеры принудительно вытягивают их через JavaScript или iframe.
2. Как платформы используют Client Hints для идентификации
Современные анти-бот системы активно анализируют Client Hints, выявляя аномалии:
- Несоответствия версий
- Разница между
Sec-CH-UAиUser-Agent - Невозможные комбинации (например, Chrome 120 на Windows 7)
- Атаки по времени
- Задержка или отсутствие заголовков (признак подмены)
- Сравнение прав
Accept-CHмежду сеансами
- Корреляция железа и ПО
Sec-CH-UA-Modelvs.navigator.hardwareConcurrencySec-CH-DPRvs.window.devicePixelRatio
- Принудительное извлечение
- Использование
<iframe>илиfetch()сimportance: 'high'для обхода ограничений - Фиксация дефолтных и переопределённых значений для детекта VM/Docker.
Client Hints опасны для анонимности, так как обходят традиционные средства подмены User-Agent, требуя глубокой интеграции в браузер.
3. Как FlashID контролирует отпечатки Client Hints
FlashID предоставляет точечный контроль над заголовками Client Hints, гарантируя для каждого профиля:
✔️ Отправку только разрешённых данных (соответствующих профилю)
✔️ Согласованность между API (например, JS и HTTP-заголовки)
✔️ Блокировку принудительного извлечения через маскировку прав
Ключевые функции:
➠ 1. Белый список Client Hints
- Выбор заголовков
Sec-CH-*для каждого профиля - Эмуляция легального согласования через
Accept-CHиCritical-CH
➠ 2. Динамическая генерация заголовков
- Автосоздание строк
Sec-CH-UA-*в соответствии с версией браузера, ОС и типом устройства - Синхронизация
Sec-CH-Viewport-Widthс реальными размерами окна (при ресайзе)
➠ 3. Защита от детектирования
- Блокировка принудительного извлечения через JS/iframe
- Имитация естественных задержек (~100-300 мс) отправки заголовков
➠ 4. Согласование железа и ПО
- Поддержка консистентности между:
Sec-CH-DPR↔devicePixelRatioSec-CH-UA-Model↔navigator.userAgentDataSec-CH-Width↔screen.width
Переопределяя Client Hints на сетевом уровне, FlashID нейтрализует следующее поколение идентификации, позволяя безопасно использовать мультиаккаунты на платформах, полагающихся на эти сигналы.
Рекомендуемое Чтение
