1. Що таке властивість isTrusted
Властивість isTrusted
— це булевий атрибут подій DOM, який вказує, чи:
- Походження - Подія була згенерована справжньою взаємодією користувача (true) або програмно за допомогою JavaScript (false)
- Межа безпеки - Слугує мірою безпеки проти ін’єкції синтетичних подій
- Лише для читання - Не може бути змінена за допомогою стандартних API JavaScript
Основні типи подій з цією властивістю:
- MouseEvent (кліки, рухи)
- KeyboardEvent (натискання клавіш)
- TouchEvent (мобільні взаємодії)
- SubmitEvent (відправлення форм)
2. Як платформи виявляють синтетичні події
Платформи використовують isTrusted
разом з іншими евристиками для виявлення автоматизації:
- Пряма перевірка:
element.addEventListener('click', (e) => {
if (!e.isTrusted) { /* Позначити як автоматизовано */ }
});
- Шаблони поведінки:
- Нереалістично швидкі послідовні події
- Події без попередніх рухів миші
- Події з ідентичними мітками часу
- Допоміжні індикатори:
- Відсутність апаратних сигнатур (тиск покажчика, координати екрана)
- Відсутність пов’язаних подій (наприклад, mousedown перед click)
- Нелюдські розподіли часу
- Перехресна перевірка:
- Порівняння
isTrusted
з:Event.timeStamp
PointerEvent.pressure
MouseEvent.screenX/Y
узгодженість
3. Як FlashID симулює довірені події
FlashID використовує передові методи для генерації подій, невідмінних від взаємодій користувача:
- Ін’єкція нативних подій:
- Використовує протоколи налагодження браузера для впорскування подій на рівні ОС
- Імітує сигнатури апаратних подій (тиск, координати)
- Симуляція послідовності подій:
- Генерує реалістичні рухи перед подією
- Підтримує людиноподібну синхронізацію між:
- Mousedown → Mouseup → Click (150-300ms)
- Keydown → Keypress → Keyup (50-120ms)
- Синхронізація середовища:
- Узгоджує синтетичні події з фактичними апаратними метриками
- Підтримує послідовну:
- Обізнаність про роздільну здатність екрана
- Профілі прискорення покажчика
- Розподіли позицій торкань/кліків
- Моделювання динамічної поведінки:
- Реалізує рандомізовані мікрорухи
- Симулює тремор руки (тремтіння 0.5-1.5px)
- Змінює тиск/час на основі:
- Моделей втоми від тривалості сесії
- Позиціонування елементів інтерфейсу користувача
- Історії попередніх взаємодій
Вам також може сподобатися