Что такое язык браузера?
В цифровую эпоху защита конфиденциальности стала темой, которая привлекает внимание всё большего числа людей. Когда мы говорим о браузерном отпечатке, обычно на ум приходят такие технологии, как Canvas-отпечаток, WebGL-отпечаток или аудиоотпечаток. Однако существует ещё один, на первый взгляд безобидный, информационный параметр, который также может использоваться для идентификации устройства——это ваши языковые настройки.
Предпочитаемый язык: языковые предпочтения в браузере
Языковые настройки браузера — это не просто параметр отображения. Когда вы открываете настройки языковых предпочтений браузера, обычно вы видите список языков, расположенных по приоритету. Например, вы можете установить английский (США) в качестве предпочитаемого языка, а затем английский, французский, португальский и т. д.
Этот список языков используется не только для определения языка интерфейса браузера. Когда вы посещаете веб-сайт, информация о языковых предпочтениях включается в HTTP-запрос и отправляется на сервер. Сайт может получить список предпочитаемых языков браузера пользователя с помощью простого JavaScript-скрипта. Это означает, что каждый раз, когда вы открываете веб-страницу, ваши языковые предпочтения “сообщают” сайту определённую информацию о вас.
Язык в заголовке запроса: Accept-Language в HTTP-запросе
В заголовках HTTP-запроса существует поле под названием Accept-Language, которое содержит подробную информацию о предпочитаемых языках браузера пользователя. Формат этого поля обычно выглядит примерно так:
Accept-Language: en-US, en;q=0.9, fr-FR;q=0.8, fr;q=0.7
Давайте разберём, что означает эта строка:
en-US:означает, что предпочитаемый язык — американский английский, с наивысшим приоритетом.
en;q=0.9:если американский английский недоступен, допустим английский (общий), но с немного более низким приоритетом и весом 0.9.
fr-FR;q=0.8:допустим французский (Франция), с весом 0.8.
fr;q=0.7:допустим любой вариант французского языка, с самым низким весом — 0.7.
Значение веса находится в диапазоне от 0 до 1: чем выше значение, тем сильнее предпочтение пользователя к данному языку. Анализируя это поле, сайт может понять языковые предпочтения пользователя и целенаправленно предоставить страницу на соответствующем языке, чтобы пользователю было проще просматривать и понимать содержимое сайта.
Приведём аналогию: Accept-Language похож на меню, которое вы передаёте официанту в ресторане——оно ясно сообщает, что именно вы хотите и каков порядок приоритетов. Сервер же подобен повару, который на основе вашего “меню” готовит для вас наиболее подходящее “блюдо” (то есть локализованный контент).
Internationalization API: более тонкая поддержка локализации
Помимо языкового поля в заголовках HTTP-запроса, браузер также предоставляет набор JavaScript-интерфейсов под названием Internationalization API (API интернационализации). Цель этого API — помочь разработчикам реализовывать интернационализацию сайтов, то есть отображать даты, время, числа в соответствующем формате, а также предоставлять локализованные переводы строк в зависимости от языковых и региональных настроек пользователя.
Когда пользователь открывает сайт, сайт может использовать Internationalization API для получения языковых предпочтений, заданных в браузере. Например, если язык браузера пользователя установлен как английский, строка, возвращаемая API, может быть "en" или "en-US".
Типичный сценарий применения — социальные медиа-платформы. Когда пользователи со всего мира заходят на один и тот же социальный сайт, сайт использует Internationalization API для определения языковых предпочтений пользователя и автоматически отображает интерфейс на знакомом ему языке, а не на языке, который пользователь не понимает. Такой локализованный опыт значительно повышает удобство продукта и удовлетворённость пользователей.
Как языковая информация участвует в формировании отпечатка?
Если рассматривать языковую информацию отдельно, она, кажется, не обладает высокой идентифицирующей способностью——ведь миллионы пользователей по всему миру устанавливают английский язык в качестве предпочитаемого. Однако когда языковая информация используется вместе с другими данными отпечатка (например, Canvas-отпечатком, WebGL-отпечатком, аудиоотпечатком, разрешением экрана, часовым поясом и т. д.), ситуация становится совершенно иной.
Комбинации языковых предпочтений чрезвычайно разнообразны: они включают не только тип предпочитаемого языка, но и порядок резервных языков, вес каждого языка, а также детализированные региональные настройки, получаемые через Internationalization API. Все эти параметры вместе формируют относительно уникальный “языковой отпечаток”.
Что ещё важнее, языковые настройки обычно отличаются довольно высокой стабильностью——обычные пользователи редко часто меняют языковые предпочтения браузера. Это означает, что как только сайт зафиксирует комбинацию вашего языкового отпечатка, он сможет использовать эту информацию при последующих посещениях для помощи в идентификации вашего устройства, даже если пользователь очистит Cookie или сменит IP-адрес.
Как защитить свой языковой отпечаток?
Если вы хотите снизить риск использования языковой информации для отслеживания по отпечатку, можно рассмотреть следующие способы:
1. Использовать браузер с защитой конфиденциальности:браузеры, ориентированные на приватность, такие как Tor Browser, стандартизируют или рандомизируют связанные с языком заголовки запросов, уменьшая различия между устройствами.
2. Использовать браузерные расширения:некоторые расширения для защиты конфиденциальности (например, Privacy Badger, uBlock Origin и др.) могут изменять или ограничивать языковую информацию в заголовках HTTP-запросов.
3. Использовать браузер для управления отпечатком:профессиональные антидетект-браузеры позволяют пользователям настраивать и подменять параметры, связанные с языком. За счёт “замены”, а не “отключения”, сайт будет воспринимать вас как обычного пользователя с другими языковыми предпочтениями.
Итоги
Языковая информация——будь то поле Accept-Language в заголовках HTTP-запроса или языковые предпочтения, предоставляемые Internationalization API——сама по себе не была разработана для отслеживания пользователей. Изначальная цель использования этих технологий сайтами заключалась в том, чтобы обеспечить более качественный пользовательский опыт и удовлетворить потребности пользователей из разных регионов мира.
Однако в рамках общей системы браузерной идентификации по отпечатку эти, на первый взгляд безобидные, данные о языковых предпочтениях также могут собираться и использоваться, объединяясь с другими технологиями отпечатков для создания более точного идентификатора пользователя. Понимание этого механизма — первый шаг к защите личной конфиденциальности.
