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-Model
vs.navigator.hardwareConcurrency
Sec-CH-DPR
vs.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
↔devicePixelRatio
Sec-CH-UA-Model
↔navigator.userAgentData
Sec-CH-Width
↔screen.width
Переопределяя Client Hints на сетевом уровне, FlashID нейтрализует следующее поколение идентификации, позволяя безопасно использовать мультиаккаунты на платформах, полагающихся на эти сигналы.
Рекомендуемое Чтение