1. Що таке функції CSS у знятті відбитків
Браузери надають низку API та можливостей, пов’язаних з CSS, які можуть бути використані для ідентифікації або зняття відбитків середовища браузера. До них належать:
CSS.supports(property, value)
: Перевіряє, чи підтримує браузер певну властивість або значення CSS.document.styleSheets
: Перелічує всі завантажені таблиці стилів, що може показати встановлені розширення або налаштований CSS.- Запити до функцій CSS: Платформи можуть виявляти підтримку сучасних модулів макету, таких як
@supports
, CSS Grid, Flexbox, Houdini APIs тощо. - Користувацькі властивості та значення CSS: Деякі скрипти вимірюють відповіді на визначені правила
@property
або оцінюютьCSS.registerProperty()
. - Орієнтація екрана, медіа-запити та prefers-color-scheme: Усі вони можуть впливати на можливості CSS і часто збираються для збагачення відбитків.
Усі разом ці “відбитки функцій CSS” створюють профіль того, який браузер і пристрій ви використовуєте.
2. Як платформи виявляють відбитки на основі CSS
Відбитки CSS збираються непомітно під час звичайного рендерингу веб-сайту або за допомогою скриптових тестів. Методи виявлення включають:
- Перелік підтримуваних функцій: Скрипти перевіряють
CSS.supports()
в циклах або використовують перевірки в стилі парсингу для оцінки поведінки макета Grid, Flexbox, backdrop-filter або користувацьких елементів. - Інспекція таблиць стилів: Скануючи всі завантажені таблиці стилів, системи зняття відбитків можуть виявляти вбудований або змінений CSS, іноді пов’язаний з інструментами автоматизації або обходом CSP.
- Зміни макета на основі шрифтів: Платформи можуть спостерігати, як користувацькі шрифти або стилізація тексту впливають на макет рендерингу, і вимірювати це за допомогою DOMRect або boundingRect APIs.
- Динамічне промальовування в елементах: Використання
boundingClientRect
,scrollIntoView
абоwindow.getComputedStyle()
для оцінки того, як елементи реагують на різні макети, може дати підказки про інструментарій. - Експорти CSS Houdini: Браузери, які надають такі API, як
CSS.paintWorklet
абоCSS.animationWorklet
, позначаються з вищою точністю — особливо у виявленні фінансових або headless браузерів.
Функції на основі CSS особливо ефективні для розрізнення реальних профілів перегляду людиною від розроблених середовищ спуфінгу, що робить їх ключовою ціллю для сучасних систем боротьби з декількома обліковими записами або ботами.
3. Як FlashID маскує функції CSS
FlashID використовує надійний і модульний підхід до контролю відбитків CSS, що дозволяє:
- Маскування поведінки
CSS.supports()
: Ми перехоплюємо та переписуємо відповіді можливостей CSS, щоб відобразити послідовний, визначений користувачем профіль браузера. - Ізольовані середовища таблиць стилів: FlashID гарантує, що вміст
document.styleSheets
є специфічним для кожного екземпляра браузера та може бути обрізаний, щоб запобігти витокам, таким як виявлення вбудовування таблиць стилів. - Послідовність рендерингу шрифтів: Ми підтримуємо специфічні для профілю значення CSS, гарантуючи, що обчислені стилі, пов’язані зі шрифтами, інтервалами та перетвореннями, залишаються стабільними протягом сеансів.
- Налаштування поведінки макета: Вибір макета CSS, такий як
display: grid
, гнучкі правила або аналіз користувацьких значень, точно імітується для підтримки реалістичності браузера. - Маскування підтримки Paint Worklet: FlashID може імітувати або придушувати розширені API CSS Houdini, такі як
paintWorklet
, ускладнюючи виявлення. - Чуйна поведінка з урахуванням профілю: Медіа-запити, prefers-color-scheme та стилі, пов’язані з екраном, адаптуються відповідно до решти профілю браузера.
Завдяки цим високоякісним налаштуванням FlashID гарантує, що зняття відбитків CSS не видає ідентичність браузера, і кожен профіль поводиться так, ніби працює на унікальному, ізольованому пристрої.
Вам також може сподобатися