Пробная версия User-Agent Reduction

User-Agent Reduction — это попытка уменьшить количество пассивных поверхностей для снятия отпечатков пальцев путем сокращения информации в строке User-Agent (UA) до только бренда и значимой версии браузера, его отличия от настольного или мобильного устройства, а также платформы, на которой он работает. В настоящее время строка UA используется в каждом HTTP-запросе и предоставляется в JavaScript всем ресурсам, загружаемым браузером. Он содержит важную информацию о браузере, платформе, на которой он работает, и его возможностях. Подсказки клиента User-Agent (UA-CH) могут предоставлять ту же информацию, что и полная строка UA, при этом позволяя сайтам запрашивать только ту информацию UA, которая им необходима.

Начиная с бета-версии Chrome 95 , мы откроем исходную пробную версию User-Agent Reduction , чтобы сайты могли отказаться от получения сокращенной строки UA прямо сейчас. Это позволит сайтам обнаруживать и устранять проблемы до того, как сокращенный UA станет поведением по умолчанию в Chrome (сокращение планируется начать во втором квартале 2022 года ). Если вы хотите протестировать пробную версию Origin на 95 бета-пользователях до того, как она будет выпущена для стабильной популяции, обязательно согласитесь и протестируйте ее до даты выпуска Chrome 95 ( в настоящее время запланированной на 19 октября 2021 г.).

Ниже приведен обзор пробной версии Origin и того, чего ожидать, и, как всегда, мы приветствуем отзывы или любые проблемы, возникающие в ходе этой пробной версии, в репозитории UA Reduction GitHub .

Что такое пользовательский агент?

Строка User-Agent (UA) передается в каждом HTTP-запросе и предоставляется в JavaScript всем ресурсам, загружаемым браузером. В настоящее время он содержит важную информацию о браузере и платформе, на которой он работает.

Почему User-Agent сокращается?

User-Agent Reduction — это попытка уменьшить количество пассивных поверхностей для снятия отпечатков пальцев в браузере Chrome, о котором впервые было объявлено в январе 2020 года. Путем сокращения информации в строке UA до только названия бренда и значимой версии браузера, различий между его настольными и мобильными устройствами и платформы. он работает, становится сложнее идентифицировать отдельных пользователей.

Что это значит для веб-разработчиков?

Сайты должны подготовиться к получению сокращенных строк UA и рассмотреть возможность участия в пробной версии источника (подробно ниже). Уменьшенные значения пользовательского агента появятся в:

  • Заголовок HTTP-запроса User-Agent
  • Метод получения Javascript navigator.userAgent
  • Метод получения Javascript navigator.platform
  • Метод получения Javascript navigator.appVersion

Чтобы получать больше информации о клиенте, чем та, которую предоставляет сокращенный User-Agent, сайтам необходимо будет перейти на новый API User-Agent Client Hints . Дополнительные сведения о стратегиях миграции см. в разделе Советы по переходу на клиент User-Agent .

Планы сокращения количества пользовательских агентов в настоящее время не включают iOS и WebView, поэтому эти платформы продолжат получать полную строку пользовательского агента. Основная причина заключается в том, что на этих платформах еще не реализованы подсказки клиента User-Agent.

Как работает это испытание происхождения?

Это исследование происхождения немного отличается от стандартного исследования происхождения. Стандартные пробные версии источника могут контролировать только поведение в ответе (например, контролировать доступ к API в Javascript ответа). В этом пробном варианте наша цель — не только изменить строку UA, предоставленную в API Javascript, но также изменить заголовок User-Agent, отправляемый в HTTP-запросе.

Чтобы иметь возможность сделать это, мы определяем временную подсказку клиента с именем Sec-CH-UA-Reduced , присутствие которой в запросе будет указывать на то, что значение заголовка User-Agent содержит сокращенную строку UA. Подсказка клиента Sec-CH-UA-Reduced будет отправлена ​​(вместе с сокращенной строкой UA) только в том случае, если токен пробной версии источника действителен, а подсказка клиента Sec-CH-UA-Reduced не будет работать после истечения срока действия пробной версии источника. Имейте в виду, что первый навигационный запрос все равно получит несокращенную строку User-Agent, если вы не установите Critical-CH header .

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

Как принять участие в пробной версии User-Agent Reduction?

  1. Чтобы зарегистрироваться для участия в пробной версии Origin и получить токен для своих доменов, посетите страницу Trial for User Agent Reduction .

  2. Обновите заголовки HTTP-ответа:

    1. Добавьте Origin-Trial: <ORIGIN TRIAL TOKEN> в заголовок HTTP-ответа, где < ORIGIN TRIAL TOKEN > содержит токен, который вы получили при регистрации для использования пробной версии Origin.
    2. Добавьте Accept-CH: Sec-CH-UA-Reduced в заголовок ответа HTTP.
    3. Установка Accept-CH приведет к отправке только сокращенной строки User-Agent при последующих запросах к источнику; Чтобы повторно отправить первый навигационный запрос с сокращенной строкой User-Agent, добавьте Critical-CH: Sec-CH-UA-Reduced в заголовок ответа HTTP в дополнение к заголовкам Accept-CH и Origin-Trial .
    4. Примечание. Если заголовки ответа содержат действительный токен Origin-Trial и Accept-CH: Sec-CH-UA-Reduced , то все запросы подресурсов (например, для изображений или таблиц стилей) и вложенные навигации (например, iframe) будут отправлять уменьшенная строка UA, даже если источники этих запросов не участвуют в пробной версии источника.
  3. Загрузите свой веб-сайт в Chrome M95 (или более поздней версии) и начните получать сокращенную строку UA.

  4. О любых проблемах или отзывах отправляйте в репозиторий UA Reduction на GitHub .

  5. См . https://uar-ot.glitch.me/ для простой демонстрации исходной пробной версии (вместе с исходным кодом).

Как принять участие в пробной версии Origin в качестве стороннего встраивания?

Начиная с Chrome 96, сторонние встраивания (например, iframe внутри другого сайта) могут участвовать в пробной версии источника без необходимости регистрации сайта верхнего уровня.

Чтобы зарегистрироваться в качестве стороннего встраивателя:

  1. Посетите пробную версию User Agent Reduction и нажмите «Зарегистрироваться» .
  2. При создании токена обязательно установите флажок Third-party matching .
  3. Чтобы получить сокращенный заголовок User-Agent из стороннего внедрения, обновите заголовки ответа HTTP .
  4. Чтобы получить сокращенную строку User-Agent в API Javascript, пробный токен необходимо внедрить через Javascript .

Некоторые важные моменты по запуску исходной пробной версии на сторонних встраиваниях: + Critical-CH не может быть указан для сторонних встраиваний, поэтому первая навигация не будет отправлять сокращенную строку UA, хотя запросы подресурсов стороннего встраивания отправит сокращенную строку UA. + Если пробная версия источника подтверждена для источника стороннего внедрения, последующие запросы к тому же источнику в навигации верхнего уровня будут отправлять сокращенную строку UA. По этой причине рекомендуется активизировать участие в пробной версии источника как для запросов верхнего уровня, так и для запросов на встраивание вместе. + Если пользовательский агент отключил сторонние файлы cookie, то пробная версия источника не будет работать для заголовка User-Agent в сторонних запросах на внедрение, хотя API-интерфейсы Javascript все равно будут получать сокращенную строку UA.

Как проверить, работает ли пробная версия Origin?

Чтобы убедиться, что пробная версия источника работает, проверьте заголовки запросов и убедитесь в следующем:

  1. Заголовок User-Agent содержит сокращенную версию. Обратитесь к этому списку примеров сокращенных строк UA . Самый простой способ определить это — строка дополнительной версии Chrome содержит 0.0.0 .
  2. Заголовку Sec-CH-UA-Reduced присвоено значение ?1 .

Заголовки первоначального ответа, содержащие пробный токен источника, должны выглядеть так:

Заголовки исходного ответа, содержащие токен исходной пробной версии.

Последующие заголовки запроса, содержащие сокращенную строку UA, должны выглядеть так:

Последующие заголовки запроса, содержащие сокращенную строку UA.

Как мне прекратить участие в пробной версии User-Agent Reduction?

В любой момент времени во время пробного периода вы можете прекратить участие и получить полную строку User-Agent. Чтобы прекратить участие:

  1. Отправьте заголовок Accept-CH в свой ответ HTTP, который не включает Sec-CH-UA-Reduced . Примечание. Accept-CH с пустым значением — допустимый способ добиться этого, если ваш сайт не запрашивает никаких других подсказок клиента.
  2. Удалите заголовок Origin-Trial для пробной версии User-Agent Reduction из вашего HTTP-ответа.
  3. Если установлено, удалите Sec-CH-UA-Reduced из заголовка Critical-CH в вашем HTTP-ответе.

Как долго будет продолжаться судебное разбирательство по поводу происхождения?

Пробная версия UA Reduction продлится не менее шести месяцев, что соответствует примерно шести этапам Chrome. Исходная пробная версия появится в M95 и завершится к M101, после чего Chrome оценит отзывы о исходной пробной версии, прежде чем приступить к поэтапной отправке сокращенной строки User-Agent в соответствии с планом развертывания . Если сайту требуется больше времени, он может выбрать последующую пробную версию источника устаревания, которая позволит ему получить доступ к полной строке UA в течение как минимум еще шести месяцев. Мы опубликуем более подробную информацию о пробной версии, когда она будет готова.

Как мне поделиться отзывом о пробной версии User-Agent Reduction?

О любых проблемах или отзывах отправляйте в репозиторий UA Reduction на GitHub .