Глосарій
Client hints
Client hints — це HTTP-заголовки та JavaScript API, які замінюють частину рядка user agent структурованими відомостями про браузер і пристрій.
Що таке client hints
Client hints — новіший спосіб, яким браузер описує себе. Замість того щоб пакувати все в рядок user agent, браузер за замовчуванням надсилає кілька невеликих заголовків, а решту — на запит. Sec-CH-UA перелічує бренди браузера та їхні мажорні версії, Sec-CH-UA-Mobile каже, чи це мобільний браузер, а Sec-CH-UA-Platform називає операційну систему. Сервер, якому потрібно більше, може через заголовок відповіді Accept-CH запросити повну версію, версію платформи, архітектуру процесора, модель пристрою або розрядність, і браузер надішле їх у наступних запитах. Ті самі дані доступні скриптам через navigator.userAgentData.
Браузери на базі Chromium надсилають client hints; Firefox і Safari наразі — ні, і сама їхня відсутність є підказкою про те, який рушій використовується.
Чому це важливо
Client hints запровадили, щоб зменшити пасивний фінгерпринтинг: значення з низькою ентропією надсилаються за замовчуванням, а детальні — лише коли сайт їх запитує. На практиці вони створили друге джерело істини, яке антифрод-системи порівнюють із першим. Якщо рядок user agent каже «Chrome 130 на Windows», а Sec-CH-UA-Platform каже "Linux", або Sec-CH-UA перелічує іншу версію, браузер було модифіковано. Антидетект-інструменти, які підміняють лише рядок user agent або лише JavaScript-бік, але не заголовки, створюють саме цю суперечність.
Значення з високою ентропією до того ж точні. Sec-CH-UA-Full-Version-List і Sec-CH-UA-Platform-Version можуть визначити конкретну збірку браузера та випуск операційної системи, що додає до відбитка браузера, коли сайт їх запитує.
Як перевірити
Інструмент HTTP-заголовки показує заголовки Sec-CH-UA*, які надіслав ваш браузер, поруч із заголовком User-Agent, щоб ви одразу побачили, чи вони узгоджуються. Інструмент user agent розбирає рядок, а сторінка відбитка браузера зчитує navigator.userAgentData і порівнює його із заголовками та платформою JavaScript.
Як зберегти узгодженість
Якщо змінюєте user agent, змінюйте разом із ним і client hints, включно зі значеннями, які браузер надсилає лише на запит. Антидетект-браузери, що будують профіль на основі реальної версії браузера, роблять це автоматично; ручна підміна у звичайному браузері — зазвичай ні. Перевіряйте знову після оновлення браузера, бо список брендів і номери версій змінюються з кожним випуском.
Поширена хибна думка
Вимкнення client hints — не нейтральний вибір. Браузер на Chromium, який не надсилає жодного, виглядає як модифікований, адже стандартний завжди надсилає три заголовки за замовчуванням.