1. Що таке ClientRects у відбитках браузера

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

  • Налаштування DPI / масштабування
  • Розбіжності у завантаженні шрифтів
  • Варіації рівня масштабування
  • Двигуни рендерингу браузера (наприклад, стилі Blink, WebKit, Gecko)

Деякі антишахрайські платформи спостерігають такі закономірності:

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

Хоча часто недооцінюється, відбиток ClientRects може розкривати поведінку масштабованості браузера, яка є дуже послідовною між сеансами — і надзвичайно важко приховати, не порушуючи функціональність інтерфейсу користувача, пов’язану з макетом.


2. Як платформи виявляють відбитки ClientRects

Антишахрайські системи можуть створювати відбитки браузерів за допомогою:

  1. Вимірювання координат блоків невидимих тестових елементів: Ховаючи елементи за екраном або постійно в макетах, вони можуть порівнювати очікувані та фактичні значення rects для виявлення підробок.
  2. Відстеження поведінки масштабування під час збільшення: Тривіальний, але ефективний підхід — спостерігачі відстежують трансформацію вашого браузера та оновлення rects під час симульованого “збільшення” або зміни розміру та перехресної перевірки логіки.
  3. Витік обчислень з плаваючою комою: Крихітні відмінності в десятковій точності можуть ідентифікувати внутрішній двигун рендерингу браузера — наприклад, Chrome обчислює інакше, ніж Safari або Firefox.
  4. Послідовність стилів CSS: Деякі передові системи використовують варіації перекомпонування (reflow) та перерозташування (relayout), спричинені оновленнями стилів, які виявляються в даних rects, щоб виявити розбіжності в браузері.
  5. Перевірки округлення розміру шрифту: Попередньо відрендерені тестові елементи з фіксованими розмірами шрифтів можуть виявити двигуни рендерингу шрифтів, які зазвичай пов’язані з типами ОС, такими як Windows, macOS або Linux/Android.

Якщо числа з плаваючою комою рендерингу макета є занадто математично “чистими” або не змінюються навіть за найменшим правилом рендерингу — що FlashID створює за реалістичним шаблоном відхилень — то двигуни проти відбитків реєструють це як аномалії.


3. Як FlashID маскує відбитки ClientRects

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

  • Видима послідовність піксельної математики, при цьому тонко відключаючи можливість відстеження
  • Природні випадкові патерни, що імітують реальні розбіжності рендерингу

Рішення FlashID для відбитків ClientRects включають:

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

Ця поведінкова ізоляція гарантує, що навіть на сайтах, орієнтованих на глибоке відстеження на основі перекомпонування, ваш браузер FlashID залишається некорельованим, неасоціативним і важко відстежуваним за допомогою методів макета.


Вам також може сподобатися

Run multiple accounts without bans and blocks
Спробуйте безкоштовно

Захист безпеки кількох облікових записів, починаючи з FlashID

Завдяки нашій технології відбитків пальців, залишайтеся непоміченими.

Захист безпеки кількох облікових записів, починаючи з FlashID