Перейти к содержимому

Глоссарий

User agent (строка браузера)

Её меняют первой, и ей же меньше всего верят. Проходите вы или нет, решает не сама строка, а то, сходятся ли с ней подсказки клиента, платформа, список языков и часы профиля.

User agent это строка, которую браузер отправляет с каждым запросом, называя себя, свою версию и систему.

Из чего состоит строка

С этой строки начинается каждый запрос вашего браузера, и любой сценарий на странице читает тот же текст.

  1. 1

    Наследство

    Все браузеры до сих пор начинают строку одинаково, и сделано это ради сценариев прошлого века.

  2. 2

    Имя системы

    Windows NT со словом Win64, либо Macintosh с Intel Mac OS X, либо X11 с Linux.

  3. 3

    Пара про движок

    Отрисовщик и слово совместимости, которое браузеры списали друг у друга.

  4. 4

    Одна версия

    Часть про Chrome: современные браузеры пишут туда старшее число и нули за ним.

Ваша строка браузера прямо сейчас

Строка прочитана в вашем браузере на этой странице, и два значения под ней взяты из того же браузера.

Ваша машина прямо сейчас

Строка браузера
измеряем на вашей машине
Платформа
измеряем на вашей машине
Языки
измеряем на вашей машине

Прочитано в вашем браузере и показано здесь. Никуда не отправляется.

Почему одной строки мало

Сайт, который читал бы только эту строку, было бы легко устроить, поэтому сайты перестали читать только её.

Три встречные проверки сегодня обычное дело, и ни одна из них сайту ничего не стоит.

  • Подсказки рядом

    Тот же браузер называет марку, платформу и версию ещё раз, отдельными полями, и обе дороги обязаны говорить одно.

  • Что видно по коду

    Строка обещает выпуск, которого не подтверждают его же возможности, и отвечает на вопрос сама.

  • Остальная машина

    Шрифты, видеокарта, ядра и список языков принадлежат системе, и чужая строка ни одного из них не двигает.

Откуда берётся версия

Выпуск в строке это выпуск того движка, который установлен на этой машине, и узнаётся он вопросом к самому движку.

Поэтому строка не обещает сборку, которой профиль не умеет рисовать, и поймать её на возможностях не получится.

Где читаютЧто там сказано
Сама строкаСтаршее число выпуска и нули вместо сборки
Подсказки клиентаТочная сборка, по каждой марке
Движок на вашем дискеВерсия, из которой взяты обе

Часто путают с этим

  • User-Agent Client Hints

    Новая дорога к тем же сведениям, отдельными полями, и именно с ней сверяют эту строку.

  • navigator.platform

    Короткая строка про систему, читаемая из сценария, и она обязана сходиться с именем системы здесь.

  • Ваш адрес

    Строка говорит, что за браузер, и ничего не говорит о том, откуда выходит трафик.

Как проверить свою

Панель выше показывает строку того браузера, в котором вы это читаете, и со страницы не уходит ни одного запроса.

Внутри профиля самопроверка отпечатка сверяет строку с подсказками и с остальной машиной и красит каждую строку зелёным или красным.

Чего это не делает

  • Это не даёт написать в строку что угодно. Строка принадлежит выбранному классу машины, а рукой правится то, что принадлежит человеку: часовой пояс, язык, экран, видеокарта, ядра и память.
  • Это не обещает выпуск, которым ваш движок не является. Старшее число идёт от того движка, который откроет профиль, поэтому движок постарее значит строку постарее.
  • Это не прячет поведение и адрес. Безупречная строка рядом с адресом серверной и сотней входов в час не меняет ничего, и закрывают аккаунты чаще именно за это.
  • Это не разрывает связь, которая уже возникла. Два аккаунта, открытые из одного профиля, останутся связанными, что бы ни говорила строка потом.

Проверить

Всё написанное выше взято из файла, который можно открыть.

Где собираются строка и её версия
packages/shared/src/index.js
Версию спрашивают у движка на этой машине
apps/desktop/src/lib/forkEngine.js · apps/desktop/src/main/main.js
Один выпуск в строке и в подсказках
apps/desktop/test/fingerprint-consistency.js
Шаблон не обещает выпуск новее движка
apps/desktop/test/engine-pin.js

Вопросы

Можно поставить любую строку браузера?
Не вольным текстом. Вы выбираете класс машины, и строка приходит вместе с платформой, подсказками и железом, поэтому части нельзя поставить друг против друга даже случайно.
Почему профиль на Mac пишет Intel Mac OS X?
Потому что так пишет настоящий Chrome на любом Mac, включая Apple Silicon. Строку заморозили годы назад, и Mac, назвавший там свой настоящий чип, остался бы такой один на свете.
Почему версия кончается нулями?
Потому что современные браузеры отправляют сокращённый вид. Точную сборку отдают подсказки, и только когда сайт о ней спросит.
Называет ли телефонный шаблон сам телефон?
В строке нет. Chrome на Android заморозил модель одной буквой, и настоящая модель называется только в подсказках.
Хватит ли новой строки, чтобы развести два аккаунта?
Нет. Два профиля с разными строками и одинаковой видеокартой, шрифтами, ядрами и списком языков описывают одну машину, и сверить это сайту стоит одного запроса.

Посмотрите, какую строку отправляет ваш профиль

Самопроверка идёт внутри профиля и показывает все 29 замеров, и зелёные, и красные.