Fingerprinting опасен не магией, а суммой мелких отличий. Один сигнал слабый, но десяток сигналов уже помогает связать сессии и отличить реального пользователя от типового браузерного профиля.
Что дает отпечаток
- Список доступных шрифтов и результат измерения текста через canvas.
- WebGL renderer, GPU, color depth, device memory и аппаратные подсказки.
- Timezone, locale, preferred languages, размеры окна и media capabilities.
- Поведение API: audio, battery, permissions, touch, storage и доступность расширений.
Как проверять privacy-риск
Для своего продукта важно понимать не только то, что собирается явно, но и то, что попадает в аналитику, антифрод, A/B-платформы и сторонние виджеты.
- Проверьте список сторонних скриптов и их сетевые запросы.
- Отдельно оцените антифрод: ему часто дают больше данных, чем нужно продукту.
- Сравните поведение обычного браузера, приватного окна и профиля с блокировщиками.
- Не обещайте пользователю анонимность, если fingerprinting остается активным.
Что уменьшает энтропию
Самый практичный путь - не собирать лишнее. Если сигнал не нужен для безопасности или продукта, он не должен уходить в логи и события. Для пользователей помогают hardened-профили, блокировка сторонних скриптов и одинаковые browser profiles в критичных сценариях.