<b>Шрифтовой фингерпринтинг: как рендер шрифтов выдаёт окружение даже без JS-ловушек</b>
Разберем энтропию данного параметра: браузер не “показывает список шрифтов”, он измеряет метрики рендера, субпиксельное сглаживание, fallback-цепочки и различия в глифах. Даже при одинаковом CSS разные ОС, DPI, hinting и наборы локальных font face дают устойчивый отпечаток.
Типовые точки детекта:
— canvas-рендер текста и сравнение пиксельных срезов;
— измерение ширин через DOM/Canvas/TextMetrics;
— проверка availability через пробные отрисовки;
— анализ аномалий fallback при редких символах и CJK-диапазонах.
Рандомизация “списка шрифтов” сама по себе слабая: антифрод смотрит на консистентность. Если у вас Arial есть, а метрики Arial ведут себя как у Liberation Sans, это видно. Рабочая модель — не подмена названий, а связка: набор доступных семейств, системные fallback, метрики glyph advance, kerning, line-height и поведение на разных масштабах.
Спуфинг через инъекцию JS-кода должен менять не только enumeration, но и результаты измерений: width, bounding box, canvas image hash. Иначе детект на уровне рендера легко ловит рассинхрон между DOM, Canvas и шрифтовым движком. Под капотом Chromium API это особенно заметно, потому что текстовый стек опирается на платформенные рендереры и кэширование глифов.
Практика простая: тестируйте профиль в BrowserLeaks, CreepJS и на собственных эталонных страницах с разными unicode-блоками. Если отпечаток “плавает” между загрузками, значит рандомизация слишком грубая. Стабильный антидетект — это не хаос, а согласованная модель шрифтового стека.
Антидетект: эксперт
@antidetect_expert_arb
<b>Шрифтовой фингерпринтинг: как рендер шрифтов выдаёт окружение даже без JS-ловушек</b>
Этот пост опубликован в Telegram-канале Антидетект: эксперт. Подписаться можно по ссылке: @antidetect_expert_arb.