<b>Шрифтовой фингерпринтинг ломается не сменой списка font-family, а моделью рендеринга</b>
Под капотом Chromium API браузер не «сообщает» сайтам шрифты напрямую. Отпечаток собирают через измерения DOM: ширина glyph run, высота line box, метрики fallback, поведение Canvas и SVG text. Разница в субпиксельном кернинге, hinting и сглаживании уже дает устойчивую энтропию для корреляции.
Типовые ошибки при рандомизации:
— подмена только CSS font-family без реального наличия гарнитуры;
— одинаковый набор шрифтов для всех профилей;
— игнорирование локализации: CJK, кириллица и латиница дают разные ветки fallback;
— поддельные метрики, которые не совпадают с CanvasRenderingContext2D.measureText.
Рабочая схема — не «спуфинг через инъекцию JS-кода» ради одного массива, а согласованная подмена нескольких уровней: список доступных fonts, поведение измерений, canvas-отрисовка и системные метрики. Если меняется только один слой, антифрод видит рассинхрон между CSSOM, Canvas и layout engine. Это уже детект на уровне логики, а не по сигнатуре.
Рандомизация должна быть стабильной внутри профиля и правдоподобной между профилями: набор шрифтов ограничивают, лишние семейства не добавляют, а fallback-цепочки строят так, чтобы они совпадали с ожидаемой ОС и языковым стеком. Иначе «уникальный» профиль становится слишком уникальным.
Разберем энтропию данного параметра до конца: цель не в хаосе, а в консистентной имитации реального стека, где шрифты, Canvas и layout ведут себя как одна система.
—
Соседний канал в сети: @affcareers_yerevan
Антидетект: эксперт
@antidetect_expert_arb
<b>Шрифтовой фингерпринтинг ломается не сменой списка font-family, а моделью рендеринга</b>
Этот пост опубликован в Telegram-канале Антидетект: эксперт. Подписаться можно по ссылке: @antidetect_expert_arb.