1. Что такое ClientRects в фингерпринтинге браузеров

Метод getBoundingClientRect() возвращает размер элемента и его положение относительно области просмотра. Современные сайты используют это для фингерпринтинга пользователей, анализируя, как API макета JavaScript и расчёты рендеринга браузера ведут себя при различных:

  • Настройках DPI / масштабирования
  • Различиях в загрузке шрифтов
  • Изменениях уровня масштаба
  • Движках макета браузера (например, Blink, WebKit, Gecko styles)

Некоторые антифрод-платформы обнаруживают такие закономерности, как:

  • Точность масштабирования до субпикселей
  • Округление и обработка десятичных значений в позициях макета на основе чисел с плавающей запятой
  • Различия в размерах стандартных скрытых контейнеров, используемых для тестирования

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


2. Как платформы обнаруживают фингерпринты ClientRects

Антифрод-системы могут фингерпринтить браузеры с помощью:

  1. Измерения координат невидимых тестовых элементов: Скрывая элементы за пределами экрана или постоянно в макетах, они могут сравнивать ожидаемые и фактические значения rect для выявления подмены.
  2. Наблюдения за поведением масштабирования при зумировании: Простой, но эффективный метод — системы отслеживают трансформацию вашего браузера и обновления rect во время симулированного “зума” или изменения размера и перепроверяют логику.
  3. Утечки вычислений с плавающей запятой: Крошечные различия в точности десятичных значений могут идентифицировать внутренний движок макета браузера — например, Chrome вычисляет иначе, чем Safari или Firefox.
  4. Согласованности CSS-стилей: Некоторые продвинутые системы используют изменения в рефлоу и перерисовке макета, вызванные обновлениями стилей, которые отражаются в данных rect, чтобы выявить несоответствия браузера.
  5. Проверок округления размера шрифта: Предварительно отрендеренные тестовые элементы с фиксированными размерами шрифта могут раскрыть движки рендеринга шрифтов, которые обычно связаны с ОС, такими как Windows, macOS или Linux/Android.

Если значения рендеринга макета слишком математически “чистые” или не варьируются даже по самым мелким правилам — что FlashID создает в реалистичном паттерне отклонений — антифрод-системы отмечают их как аномалии.


3. Как FlashID маскирует фингерпринты ClientRects

В отличие от платформ, которые подделывают только высокоуровневые значения, FlashID обеспечивает детальный контроль для имитации настоящего поведения масштабирования, гарантируя:

  • Видимую согласованность пиксельной математики, но с отключением трассируемости
  • Естественные паттерны случайности, имитирующие реальные отклонения рендеринга

Решения FlashID для фингерпринтинга ClientRects включают:

  1. Подмену ClientRect через динамическое управление элементами: FlashID динамически вставляет и обрабатывает измерения прямоугольников, возвращая кастомные, но правдоподобные значения rect для каждого профиля браузера.
  2. Настраиваемую точность округления: Точность чисел с плавающей запятой для размеров rect может слегка настраиваться между сеансами — отражая естественное поведение браузера и системы.
  3. Синхронизацию подмены с модулями CSS/шрифтов и масштабирования: Подмена ClientRects работает совместно с настройками шрифтов, масштаба и стилей, чтобы соответствовать ожидаемому выводу рендеринга.
  4. Внедрение дельты варьирования: FlashID добавляет искусственные вариации в измерения на основе rect, чтобы предотвратить сопоставление сеансов — но в пределах ожидаемого браузером округления или “шума” макета.
  5. Обход стандартных проверок скрытых DOM-элементов: Система симулирует и вычисляет все необходимые значения rect, даже для скрытых элементов, обманывая системы обнаружения.
  6. Дрожание измеряемых элементов: Для каждого профиля применяется небольшое отклонение и дрожание размеров элементов, что придает экземплярам браузера FlashID реалистичный профиль рендеринга.

Такая изоляция поведения гарантирует, что даже на сайтах с углубленным отслеживанием через рефлоу ваш браузер FlashID остаётся несвязанным, неассоциируемым и сложным для отслеживания методами макета.


Рекомендуемое Чтение

Защита безопасности нескольких аккаунтов, начиная с FlashID

С помощью нашей технологии отпечатков пальцев оставайтесь незаметными.

Защита безопасности нескольких аккаунтов, начиная с FlashID