Обновить

Комментарии 1

Хочу добавить кое-что про L2, что часто упускают: navigator.hardwareConcurrency и deviceMemory это не просто статические числа, которые нужно подменить. Проблема в том, что эти значения коррелируют с другими сигналами. Если вы говорите "16 ядер, 32GB RAM", но при этом WebGL renderer показывает llvmpipe или Mesa, или AudioContext показывает нулевые задержки без джиттера, вся легенда рассыпается. Современные системы детекции, в частности Akamai и DataDome, строят граф корреляций. Один параметр сам по себе не срабатывает, но несовпадение двух-трёх уже достаточно.
Про deterministic noise в Canvas - хорошо, что упомянули. Именно этот момент часто ломает дешёвые stealth-решения: рандом на каждый вызов toDataURL() легко детектируется повторным рендером. Детерминизм привязанный к pid, это правильный подход.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации