Jump to content

Советы клиенту

Клиентские подсказки — это набор полей заголовка HTTP и JavaScript интерфейс программирования веб-приложений (API) для упреждающего согласования контента в протоколе передачи гипертекста (HTTP). Клиент может рекламировать информацию о себе через эти поля, чтобы сервер мог определить, какие ресурсы следует включить в его ответ. Первоначально предложенные в 2013 году инженерами Google , Client Hints были представлены как сохраняющая конфиденциальность альтернатива строкам заголовков пользовательского агента в рамках инициативы Google Privacy Sandbox . Первоначальный дизайн Client Hints столкнулся с сопротивлением со стороны поставщиков браузеров из-за различных проблем конфиденциальности. По состоянию на май 2024 года более 75% всего интернет-трафика поддерживают Client Hints. Несмотря на широкое распространение, исследователи конфиденциальности выразили обеспокоенность тем, что Client Hints в основном используются скриптами отслеживания.

С первых дней существования Интернета существовало желание определить, какой тип клиента использовал пользователь для подключения к серверу. В 1992 году было введено расширение протокола HTTP , добавившее User-Agent HTTP-заголовок , который был отправлен от клиента на сервер и содержал простую строку, идентифицирующую имя клиента и его версию. Заголовок предназначался исключительно для статистических целей и для отслеживания клиентов, нарушивших протокол. С тех пор, с развитием Интернета, пользовательские агенты становились все более сложными и начали содержать значительную детальную информацию о пользователе. Часто эта информация используется при снятии отпечатков пальцев браузера , что позволяет сайтам пассивно отслеживать пользователей на разных сайтах без необходимости загружать какой-либо JavaScript . для пользователя [1]

Первоначальный проект спецификации client-hint был предложен в 2013 году инженерами Google . В ноябре 2015 года спецификации стали официальным проектом Рабочей группы по проектированию Интернета (IETF). Впоследствии, в 2021 году, спецификация была повышена до экспериментального RFC. Примерно в то же время спецификации для обработки подсказок HTTP-клиента в сети были опубликованы в виде проекта в отчете группы сообщества W3C. [2]

В 2020 году Google объявила о своем намерении отказаться от использования строк пользовательского агента (UA) в рамках своей инициативы Privacy Sandbox , сославшись на клиентские подсказки как на альтернативу, обеспечивающую конфиденциальность. [1] Первоначальное предложение о клиентских подсказках было встречено отказом со стороны других поставщиков браузеров из-за проблем с конфиденциальностью. Mozilla , компания-производитель Firefox , изначально классифицировала это предложение как вредное, а Apple заняла против него негативную позицию. [1] Brave также выразил обеспокоенность по поводу первоначального предложения, указав на способы его использования для отслеживания пользователей в Интернете. [3] Несмотря на эти опасения, Chrome реализовал поддержку HTTP Client Hints в августе 2020 года. Хотя прекращение поддержки строк UA было отложено из-за пандемии COVID-19 , этот процесс был завершен в феврале 2023 года. [1]

После первоначального противостояния Mozilla и Apple изменили свою позицию на нейтральную, а Brave синхронизировала реализацию клиентских подсказок с Chrome. По состоянию на май 2024 года более 75 % всего интернет-трафика поддерживают клиентские подсказки. [2]

Механизм

[ редактировать ]

Протокол Client Hints определяет две сущности: пользовательский агент (UA) (обычно браузер ) и сервер . Эти два объекта взаимодействуют друг с другом, чтобы договориться о том, какой контент должен предоставляться пользователю. [4] Этот процесс включает в себя отправку сервером UA ответа с Accept-CH HTTP-заголовок , содержащий список HTTP-заголовков Client Hint, которые ему необходимы. Впоследствии ожидается, что UA будет возвращать запрошенные клиентские подсказки с каждым последующим ответом, при условии, что он поддерживает эти подсказки. Эти заголовки затем используются сервером для принятия решения о том, какой контент обслуживать UA. [2] Если UA не понимает или не поддерживает конкретную подсказку клиента, тогда UA инструктируется игнорировать конкретную подсказку клиента. В случаях, когда Client-Hints не может быть кэширован, сервер должен указать соответствующие заголовки Client-Hints в отдельном файле. Vary заголовок отправляется в UA. [1] Это гарантирует, что механизмы кэширования понимают, что ответы могут различаться в зависимости от разных значений подсказок клиента. [5] включаются дополнительные случайные идентификаторы браузера Для клиентских подсказок, которые конкретно идентифицируют браузер, в качестве смазки , чтобы предотвратить окостенение протокола при перехвате браузера . [6]

Для UA, поддерживающих JavaScript , доступна дополнительная опция через navigator.userAgentData API JavaScript. Этот API позволяет JavaScript получать ту же информацию, что и в заголовках Client Hints. [1]

Чтобы инициировать согласование контента , HTTP-сервер добавляет Accept-CH заголовок ответа на HTTP-запрос:

HTTP/1.1 200 OK...Accept-CH: Viewport-Width...

Если пользовательский агент поддерживает подсказку клиента о ширине порта просмотра, пользовательский агент добавит Viewport-Width заголовок в каждом последующем запросе,

GET /gallery HTTP/1.1...Viewport-Width: 1920...

сервер может затем использовать информацию в Viewport-Width заголовок, чтобы принять решение о типе контента, который будет обслуживаться пользовательским агентом. Например, если на сервере есть определенное изображение, которое очень велико, сервер можно настроить на возврат изображения меньшего размера, если изображение не соответствует области просмотра . [7]

Проблемы конфиденциальности

[ редактировать ]

Когда предложение о клиентских подсказках было первоначально опубликовано, оно было встречено серьезными опасениями по поводу конфиденциальности. Поставщики браузеров, такие как Brave и Mozilla, отметили, что определенное положение в первоначальном проекте предложения позволяло веб-сайтам инструктировать браузер предоставлять данные Client-Hint сторонним доменам. Сторонние домены — это домены, которые не выполняют какой-либо код JavaScript, а загружают ресурсы, такие как изображения и файлы сценариев. [3] Положение в первоначальном проекте позволит таким сторонним доменам, как сети доставки контента (CDN) и поставщикам облачных услуг , таким как Cloudflare и Google Cloud (так называемые терминаторы TLS), отслеживать пользователей в сети, инструктируя браузер отправлять информацию о клиентских подсказках. на свои серверы. [3] [8] Кроме того, были высказаны опасения, что предложение Client-Hint было слишком либеральным и явно позволяло передавать на серверы новую информацию, ставящую под угрозу конфиденциальность, которую невозможно получить путем простого анализа заголовков HTTP . [8] Кроме того, расширения, направленные на сохранение конфиденциальности пользователя, такие как расширение NoScript, также выступили против этого предложения на том основании, что оно значительно усложнит предотвращение кражи сайтами информации о пользователях, компрометирующей конфиденциальность. [3]

С момента внедрения Client Hints в основных браузерах исследователи конфиденциальности выразили обеспокоенность по поводу их реального использования для отслеживания. Исследование, проведенное в 2023 году исследователями из Левенского университета и Университета Радбауд, показало, что при сканировании более 100 000 веб-сайтов 60% скриптов обращались к API-интерфейсам Client Hints JavaScript , причем большинство из них были скриптами отслеживания и рекламы , многие из которых были созданы Google . Более 90% этих скриптов передавали полученные данные на трекинговые домены. [1] Последующее исследование, проведенное в мае 2024 года исследователями из Университета прикладных наук Hochschule Бонн-Рейн-Зиг, показало, что, хотя общее распространение Client Hints в Интернете было низким, значительное количество сторонних доменов, известных тем, что отслеживают доступ к данным HTTP Client Hints, . [2]

См. также

[ редактировать ]
  1. ^ Перейти обратно: а б с д и ж г Сенол, Асуман; Ачар, Гюнеш (26 ноября 2023 г.). «Раскрытие влияния сокращения количества пользовательских агентов и подсказок клиентам: аналитическое исследование» . Материалы 22-го семинара по конфиденциальности в электронном обществе . АКМ. стр. 91–106. дои : 10.1145/3603216.3624965 . ISBN  979-8-4007-0235-8 . Архивировано из оригинала 26 июня 2024 г. Проверено 25 июня 2024 г.
  2. ^ Перейти обратно: а б с д Вифлинг, Стефан; Хёншайд, Мариан; Яконо, Луиджи Ло (22 мая 2024 г.), «Меры конфиденциальности перевернуты с ног на голову? Исследование использования подсказок HTTP-клиента в Интернете», arXiv : 2405.13744 [ cs ]
  3. ^ Перейти обратно: а б с д Чимпану, Каталин (16 мая 2019 г.). «Высказаны опасения по поводу конфиденциальности в связи с предстоящим веб-стандартом Client-Hints» . ЗДНЕТ . Архивировано из оригинала 01 декабря 2023 г. Проверено 2 июня 2024 г.
  4. ^ Григорик И.; Вайс, Ю. (февраль 2021 г.). Подсказки HTTP-клиента . IETF . дои : 10.17487/RFC8942 . РФК 8942 . Проверено 11 февраля 2021 г.
  5. ^ «Подсказки HTTP-клиента» . HTTP. МДН . 05.03.2024. Архивировано из оригинала 7 июня 2024 г. Проверено 2 июня 2024 г.
  6. ^ Тейлор, Майк; Вайс, Йоав, ред. (1 апреля 2024 г.). «Советы для клиентов User-Agent § 6.2. Списки брендов UA в стиле GREASE» . ВИКГ . Архивировано из оригинала 18 июня 2024 года . Проверено 26 июня 2024 г.
  7. ^ «Улучшение конфиденциальности пользователей и удобства разработки с помощью клиентских подсказок User-Agent» . Конфиденциальность и безопасность. Chrome для разработчиков . Архивировано из оригинала 2 июня 2024 г. Проверено 2 июня 2024 г.
  8. ^ Перейти обратно: а б «Обеспокоенность Храброго предложением подсказок клиенту» . Храбрый . 09.05.2019. Архивировано из оригинала 26 июня 2024 г. Проверено 2 июня 2024 г.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: b2e2e7480ee7987c65f998301ef20db9__1719432240
URL1:https://arc.ask3.ru/arc/aa/b2/b9/b2e2e7480ee7987c65f998301ef20db9.html
Заголовок, (Title) документа по адресу, URL1:
Client Hints - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)