1. Thuộc tính isTrusted là gì
Thuộc tính isTrusted
là một thuộc tính boolean của các sự kiện DOM cho biết liệu:
- Nguồn gốc - Sự kiện được tạo ra bởi tương tác thực sự của người dùng (true) hay được lập trình bằng JavaScript (false)
- Ranh giới bảo mật - Đóng vai trò là biện pháp bảo mật chống lại việc chèn sự kiện tổng hợp
- Chỉ đọc - Không thể sửa đổi thông qua các API JavaScript tiêu chuẩn
Các loại sự kiện chính với thuộc tính này:
- MouseEvent (nhấp chuột, di chuyển)
- KeyboardEvent (nhấn phím)
- TouchEvent (tương tác di động)
- SubmitEvent (gửi biểu mẫu)
2. Cách các nền tảng phát hiện sự kiện tổng hợp
Các nền tảng sử dụng isTrusted
cùng với các phương pháp phán đoán khác để phát hiện tự động hóa:
- Kiểm tra trực tiếp:
element.addEventListener('click', (e) => {
if (!e.isTrusted) { /* Gắn cờ là tự động */ }
});
- Mẫu hành vi:
- Các sự kiện liên tiếp nhanh bất thường
- Các sự kiện không có chuyển động chuột trước đó
- Các sự kiện có dấu thời gian giống hệt nhau
- Chỉ số phụ trợ:
- Thiếu chữ ký phần cứng (áp lực con trỏ, tọa độ màn hình)
- Không có các sự kiện liên quan (ví dụ: mousedown trước click)
- Phân phối thời gian không giống con người
- Kiểm tra chéo:
- So sánh
isTrusted
với:Event.timeStamp
PointerEvent.pressure
- Tính nhất quán của
MouseEvent.screenX/Y
3. Cách FlashID mô phỏng các sự kiện đáng tin cậy
FlashID sử dụng các kỹ thuật tiên tiến để tạo ra các sự kiện không thể phân biệt được với tương tác của người dùng:
- Chèn sự kiện gốc:
- Sử dụng giao thức gỡ lỗi trình duyệt để chèn sự kiện ở cấp độ hệ điều hành
- Mô phỏng chữ ký sự kiện phần cứng (áp lực, tọa độ)
- Mô phỏng chuỗi sự kiện:
- Tạo ra các chuyển động trước sự kiện thực tế
- Duy trì thời gian giống con người giữa:
- Mousedown → Mouseup → Click (150-300ms)
- Keydown → Keypress → Keyup (50-120ms)
- Đồng bộ hóa môi trường:
- Căn chỉnh các sự kiện tổng hợp với các số liệu phần cứng thực tế
- Duy trì tính nhất quán của:
- Nhận biết độ phân giải màn hình
- Hồ sơ gia tốc con trỏ
- Phân phối vị trí chạm/nhấp
- Mô hình hóa hành vi động:
- Thực hiện các chuyển động nhỏ ngẫu nhiên
- Mô phỏng rung tay (rung lắc 0.5-1.5px)
- Thay đổi áp lực/thời gian dựa trên:
- Các mẫu mệt mỏi theo thời lượng phiên
- Vị trí phần tử giao diện người dùng
- Lịch sử tương tác trước đó
Bạn Cũng Có Thể Thích