Site icon Блог — Botfaqtor.ru

Client Hints: что это, чем отличается от User-Agent и как его используют в антифроде

Ботфактор

User Agent постепенно утрачивает роль основного источника данных, Client Hints — более современный механизм передачи сведений о клиенте. Так ли это? Давайте разбираться, что это за технология, какие данные она передает, а какие нет, можно ли её использовать для обнаружения фрода и бот-трафика.

Что такое Client Hints

Client Hints — это механизм, при котором сайты получают структурированные данные об устройстве пользователя, браузере или сети частично. То есть он не отправляет единый массив идентификационных данных, как User-Agent, а делится только той информацией, которую запрашивает ресурс.

Пример запроса сервера:

Accept-CH: Sec-CH-UA-Platform-Version, Sec-CH-UA-Arch, Sec-CH-UA-Model

Пример заголовков, которые браузер может отправить в ответ на такой запрос:

Sec-CH-UA: "Google Chrome";v="137", "Chromium";v="137", "Not/A)Brand";v="24"
Sec-CH-UA-Mobile: ?0
Sec-CH-UA-Platform: "Windows"
Sec-CH-UA-Platform-Version: "10.0.0"
Sec-CH-UA-Arch: "x86"
Sec-CH-UA-Model: ""

Для чего он нужен

Механизм используется для улучшения пользовательского опыта, маркетинга и  аналитики:

Подробнее ознакомиться с применениями технологии можно в этом отчете.

Типы

Некоторые строки, такие как Sec-CH-UA, передаются по умолчанию, друге — только по запросу.

НазваниеОписаниеПример значения (код)
Sec-CH-UAНазвание браузера (бренд) и основная версия. Отправляется по умолчанию«Chromium»;v=»122″, «Not(A:Brand»;v=»24″, «Google Chrome»;v=»122″
Sec-CH-UA-MobileПризнак мобильного устройства. Отправляется по умолчанию?0 (не мобильное) / ?1 (мобильное)
Sec-CH-UA-PlatformНазвание операционной системы. Отправляется по умолчанию.«Windows», «macOS», «Linux», «Android», «iOS»
Sec-CH-UA-Platform-VersionВерсия операционной системы«14.0.0»
Sec-CH-UA-ArchАрхитектура процессора«x86», «arm»
Sec-CH-UA-BitnessРазрядность архитектуры«64», «32»
Sec-CH-UA-ModelМодель устройства (актуально для мобильных)«Pixel 8», «SM-G991B»
Sec-CH-UA-Full-Version-ListПолная версия браузера«Chromium»;v=»122.0.6261.95″, «Google Chrome»;v=»122.0.6261.95″
Sec-CH-UA-WoW64Запущен ли 32-битный браузер на 64-битной Windows?0 / ?1
Sec-CH-UA-Form-FactorsФорм-фактор устройства«Desktop», «Mobile», «Tablet», «XR», «EInk», «Watch», «Automotive»
Sec-CH-Prefers-Color-SchemeПредпочитаемая цветовая схема«light», «dark»
Sec-CH-Prefers-Reduced-MotionПредпочтение уменьшенной анимации«no-preference», «reduce»
Sec-CH-Prefers-Reduced-TransparencyПредпочтение уменьшенной прозрачности«no-preference», «reduce»
Sec-CH-Prefers-ContrastПредпочитаемый контраст«no-preference», «more», «less», «custom»
Sec-CH-Forced-ColorsРежим принудительных цветов (высокий контраст ОС)«active», «none»

Какие браузеры поддерживают Client Hints

Client Hints поддерживается большинством современных браузеров, однако не в равной степени:

Яндекс Браузер также использует эту технологию как замену устаревшему User-Agent из-за того, что второй стал слишком сложным и избыточным.

Чем Client Hints отличается от User Agent

CH и UA отличаются механизмом передачи, форматом, приватностью и другими критериями.

КритерийUser-Agent (UA)Client Hints (UA-CH)
Механизм передачиЗаголовок User-Agent отправляется с каждым HTTP-запросом автоматическиНабор заголовков Sec-CH-UA-*, отправляемых по запросу сервера через заголовок Accept-CH
ФорматОдна длинная строкаСтруктурированные заголовки: каждый параметр — отдельный заголовок
Объём данных по умолчаниюПолная строка отправляется всегдаПо умолчанию отправляются только название браузера, главная версия. Детали — по явному запросу.
Поддержка браузерамиВсе браузерыChromium (Chrome, Edge, Opera), Яндекс Браузер. Firefox и Safari не поддерживают
СтандартЧасть HTTP-спецификацииСпецификация W3C — UA Client Hints
ПриватностьСтрока фактически уникальна и используется для фингерпринтингаРазработана Google в рамках Privacy Sandbox для снижения пассивного фингерпринтинга
Защита приватностиСлабее — отображает все данныеСильнее — сервер получает детали, только если явно запрашивает

CH лучше UA?

Client Hints не заменяют User-Agent полностью — они работают параллельно. UA-строка продолжает отправляться, но в частично сокращенном виде (Reduced UA). По сути, CH — это эволюция защиты приватности пользователя в сети.

Пример. Если пользователь на устройстве с разрешением 640×960 просматривает контент в ландшафтном (альбомном) режиме, то Client Hints сможет лучше объяснить, что формат 960×640 больше подходит в текущем UX-сценарии.

И наоборот. Есть случаи, когда CH могут не совсем соответствовать поставленной задаче. Например:

Кроме того, CH сокращает область сбора цифрового отпечатка настолько, насколько это возможно. И тогда обнаружение мошенничества с рекламой, аналитика, поддержка клиентов и выявление ошибок могут стать намного сложнее.

Например, сейчас можно анализировать рекламные визиты на сайт, сверять поведение пользователей по гео, ОС, марке устройств и выявлять общие паттерны. Что, если передача таких данных прекратится? Организации больше не смогут использовать широкий спектр ценных инструментов.

Можно ли подделать Client Hints?

Злоумышленники могут подделывать Client Hints, прибегая к технологии спуфинга. Однако это труднее сделать, чем манипулировать User-Agent.

Почему так:

Для обычных скриптов подделать хинты клиента не так просто, как изменить один заголовок. Тем не менее, продвинутые инструменты, особенно антидетект-браузеры, используемые в мошенничестве с рекламой и анти-трекеры, способны эмулировать реальную среду и подделывать CH.

Однако это запускает целую цепочку требуемой синхронизации следующих данных:

Если какая-либо деталь не соответствует действительности, антибот‑ и антифрод-системы, применяющие технологию фингерпринтинга, используют эти расхождения между UA и CH для обнаружения ботов.

Можно ли с помощью анализа Client Hints обнаружить бот-трафик

Да, как мы сказали выше, по расхождениям в передаваемых данных. Однако не как единственный метод.

В каких случаях можно использовать:

Client Hints — один из сигналов в многослойной системе обнаружения недействительного и вредоносного трафика. Его ценность заключается именно в перекрёстной проверке с другими параметрами.

По каким параметрам можно определить бота

Ниже приведены лишь возможные способы обнаружения, которые зависят от способностей ботов и используемых технологий в подмене CH и данных.

Полное отсутствие Client Hints

В Chromium-браузерах по умолчанию отправляются некоторые базовые подсказки, а дополнительные передаются по запросу сервера. Если бот построен на HTTP-библиотеке, он сможет подделать UA-строку, но CH не отправит, так как потребуется синхронизация множества данных.

Несогласованность между UA и Client Hints

СигналПример аномалииЧто это значит
Версия браузераUA: Chrome/120, а Sec-CH-UA содержит «Chromium»;v=»114″Забыли синхронизировать при подмене
ПлатформаUA: Windows NT 10.0, а Sec-CH-UA-Platform: «macOS»Ручная подмена одного из источников
МобильностьUA содержит Mobile, а Sec-CH-UA-Mobile: ?0Конфликт

Невалидные значения

Windows использует версии вида 10.0.0, 13.0.0, 14.0.0 и т. д. Если сервер получил ответ с версией 15.1 для Windows, то есть формат версионности macOS, то это будет говорить о фроде.

Поведение при Critical-CH

Сервер может отправить запрос:

Accept-CH: Sec-CH-UA-Full-Version-List
Critical-CH: Sec-CH-UA-Full-Version-List

Critical-CH заставляет реальный браузер повторить запрос с добавленными хинтами.

Браузер должен повторно отправить запрос, если критичные хинты не были переданы в исходном запросе:

  Запрос 1 → без Sec-CH-UA-Full-Version-List

  Ответ: 200 + Accept-CH + Critical-CH

  Запрос 2 (автоматический retry) → с Sec-CH-UA-Full-Version-List

Простой бот:

  Запрос 1 → без Sec-CH-UA-Full-Version-List

  Ответ: 200 + Accept-CH + Critical-CH

  (бот не знает про Critical-CH → retry не происходит)

Сложности в обнаружении ботов с помощью CH

Технологии фрода эволюционируют вместе с развитием AdTech-платформ и других инструментов. Когда анализ только Client Hints будет бессилен:  

Client Hints дают ценность в обнаружении ботов именно в комбинации с остальными слоями. Расхождение CH с TLS-фингерпринтом или JS API — надёжный сигнал. Сами по себе CH — необходимый, но недостаточный инструмент.

Что делать и как защитить сайт от бот-трафика?

Для защиты сайтов от недействительного трафика, бот-накруток и спама используйте комплексные инструменты и антифрод-системы. Помимо цифрового отпечатка они анализируют весь профиль пользователя, включая поведенческие метрики. Это актуально и при атаках примитивных ботов, и при использовании модифицированных антидетект-браузеров.

Защитите сайт от ботов с помощью современной антибот-системы «Ботфактор». Попробуйте бесплатно на 7 дней. Подробнее →

Exit mobile version