Статті й порівняння

User-Agent Client Hints: що прийшло на зміну рядку User-Agent

Роками рядок User-Agent повідомляв кожному сайту точну версію браузера, операційну систему, а часто й модель пристрою. Браузери на Chromium його урізали й перенесли ці деталі в User-Agent Client Hints: набір HTTP-заголовків і JavaScript API, які за замовчуванням розкривають менше, а більше лише на запит.

Перевірте свій браузер просто зараз

Перевіряю браузер…

Чому User-Agent урізали

Повний рядок User-Agent був готовим відбитком і надсилався з кожним запитом, потрібен він сайту чи ні. Chrome завершив скорочення у 2023 році: молодші номери версії тепер нулі, версія Windows завжди показується як Windows NT 10.0, а моделі Android-пристроїв приховані. Деталі не зникли, вони переїхали в Client Hints, де сайт має про них попросити.

Що надсилається за замовчуванням

Без запиту браузери на Chromium надсилають з кожним запитом три підказки з низькою ентропією:

У списку брендів є ще навмисно дивний запис на кшталт "Not(A:Brand". Він змінюється між версіями, щоб сайти розбирали список як слід, а не шукали фіксовані рядки.

Детальні підказки

Більше деталей доступно на запит: точна версія платформи, архітектура й розрядність процесора, модель пристрою і повна версія кожного бренду. Сервер просить їх заголовком відповіді Accept-CH і отримує в наступних запитах; скрипт отримує їх через navigator.userAgentData.getHighEntropyValues(). Так, наприклад, надійно відрізняють Windows 11 від Windows 10: у Windows 11 версія платформи починається з 13.

Які браузери їх підтримують

Chrome, Edge, Opera, Brave та інші браузери на Chromium. Firefox і Safari Client Hints не реалізують, тож для них сайтам досі доводиться читати рядок User-Agent. Відсутність підказок для Firefox і Safari нормальна й нічого не каже про підробку.

Чому Client Hints допомагають помітити підробку

Ті самі факти тепер є в кількох місцях: заголовок User-Agent, заголовки Sec-CH-UA, navigator.userAgent і navigator.userAgentData на сторінці, а також ті самі значення всередині Web Worker. Справжній браузер тримає їх узгодженими. Інструменти підробки часто змінюють рядок User-Agent і забувають про підказки або змінюють значення в JavaScript, але не заголовки.

Перевірка SpoofLens порівнює все це: версію браузера в User-Agent і в Client Hints, платформу, яку називає кожне джерело, чи сходяться вони щодо мобільного пристрою, і чи збігається заголовок Sec-CH-UA-Platform із тим, що повідомляє JavaScript. Кожна розбіжність показується з поясненням.

Для власників сайтів

Часті запитання

Чи можна побачити свої Client Hints?
Так. Повна перевірка браузера SpoofLens показує Client Hints, які надіслав ваш браузер, поруч зі значеннями з JavaScript.
Чи ускладнюють Client Hints відбитки?
Трохи: за замовчуванням надсилається менше, а запит на більше видно. Але сайт, що просить усі детальні підказки, все одно отримує докладні дані.
Рядок User-Agent зникне?
Ні. Він і далі надсилається, лише з меншою деталізацією в браузерах на Chromium. Багато сайтів і інструментів досі на нього покладаються.

Читайте також