realfp.com

Что такое шрифтовой отпечаток?

Шрифтовой отпечаток — ещё одно важное измерение браузерного отпечатка. Когда на вашем устройстве установлены определённые шрифты или, наоборот, отсутствуют некоторые шрифты, эта информация может использоваться для создания уникального идентификатора.



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



Принцип работы шрифтового отпечатка

Шрифтовой отпечаток в основном реализуется через JavaScript API браузера. Его основной принцип заключается в следующем: браузер может получать и сообщать список шрифтов, доступных на устройстве пользователя; эта информация о шрифтах в сочетании с другими характеристиками браузера и устройства формирует уникальный отпечаток.



Существует три распространённых метода сбора шрифтового отпечатка:



Метод 1: перечисление шрифтов (Font Enumeration)



Это самый прямой метод. Сайт напрямую получает полный список установленных шрифтов через API, предоставляемый браузером, — так же просто, как посмотреть, какие приложения установлены на устройстве.



Метод 2: обнаружение шрифтов (Font Detection)



Это более скрытный метод. Сайт заставляет браузер отрисовать фрагмент текста определённым шрифтом, а затем измеряет размер этого текста. Если данный шрифт установлен, размеры отображения текста будут отличаться от размеров при использовании шрифта по умолчанию——таким образом сайт методом «проб и ошибок» поочерёдно определяет, присутствует ли тот или иной шрифт на вашем устройстве.



Метод 3: обнаружение шрифтов в canvas-отпечатке (Canvas Fingerprinting)



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