1. คุณสมบัติ isTrusted คืออะไร
คุณสมบัติ isTrusted
เป็นแอตทริบิวต์บูลีนของเหตุการณ์ DOM ที่ระบุว่า:
- ที่มา - เหตุการณ์ถูกสร้างขึ้นโดยการโต้ตอบของผู้ใช้จริง (true) หรือโดยโปรแกรมผ่าน JavaScript (false)
- ขอบเขตความปลอดภัย - ทำหน้าที่เป็นมาตรการความปลอดภัยในการป้องกันการฉีดเหตุการณ์สังเคราะห์
- อ่านอย่างเดียว - ไม่สามารถแก้ไขได้ผ่าน API ของ JavaScript มาตรฐาน
ประเภทเหตุการณ์หลักที่มีคุณสมบัตินี้:
- MouseEvent (การคลิก, การเคลื่อนไหว)
- KeyboardEvent (การกดปุ่ม)
- TouchEvent (การโต้ตอบบนมือถือ)
- SubmitEvent (การส่งฟอร์ม)
2. แพลตฟอร์มตรวจจับเหตุการณ์สังเคราะห์ได้อย่างไร
แพลตฟอร์มใช้ isTrusted
ร่วมกับวิธีการพิจารณาอื่นๆ เพื่อตรวจจับระบบอัตโนมัติ:
- การตรวจสอบโดยตรง:
element.addEventListener('click', (e) => {
if (!e.isTrusted) { /* Flag as automated */ }
});
- รูปแบบพฤติกรรม:
- เหตุการณ์ต่อเนื่องที่รวดเร็วเกินจริง
- เหตุการณ์ที่ไม่มีการเคลื่อนไหวของเมาส์นำหน้า
- เหตุการณ์ที่มีการประทับเวลาเหมือนกัน
- ตัวบ่งชี้เสริม:
- ขาดลายเซ็นของฮาร์ดแวร์ (แรงกดของตัวชี้, พิกัดหน้าจอ)
- ไม่มีเหตุการณ์ที่เกี่ยวข้อง (เช่น mousedown ก่อน click)
- การกระจายเวลาที่ไม่ใช่ของมนุษย์
- การตรวจสอบข้าม:
- การเปรียบเทียบ
isTrusted
กับ:Event.timeStamp
PointerEvent.pressure
- ความสอดคล้องของ
MouseEvent.screenX/Y
3. FlashID จำลองเหตุการณ์ที่เชื่อถือได้อย่างไร
FlashID ใช้เทคนิคขั้นสูงเพื่อสร้างเหตุการณ์ที่ไม่สามารถแยกแยะได้จากการโต้ตอบของผู้ใช้:
- การฉีดเหตุการณ์แบบ Native:
- ใช้โปรโตคอลการดีบักของเบราว์เซอร์เพื่อฉีดเหตุการณ์ในระดับ OS
- เลียนแบบลายเซ็นเหตุการณ์ของฮาร์ดแวร์ (แรงกด, พิกัด)
- การจำลองลำดับเหตุการณ์:
- สร้างการเคลื่อนไหวก่อนเหตุการณ์ที่สมจริง
- รักษาเวลาที่เหมือนมนุษย์ระหว่าง:
- Mousedown → Mouseup → Click (150-300ms)
- Keydown → Keypress → Keyup (50-120ms)
- การซิงโครไนซ์สภาพแวดล้อม:
- จัดเรียงเหตุการณ์สังเคราะห์ให้สอดคล้องกับเมตริกฮาร์ดแวร์จริง
- รักษาความสอดคล้อง:
- การรับรู้ความละเอียดหน้าจอ
- โปรไฟล์การเร่งความเร็วของตัวชี้
- การกระจายตำแหน่งการสัมผัส/คลิก
- การสร้างแบบจำลองพฤติกรรมแบบไดนามิก:
- ใช้การเคลื่อนไหวขนาดเล็กแบบสุ่ม
- จำลองการสั่นของมือ (ความผันผวน 0.5-1.5px)
- ปรับแรงกด/เวลาตาม:
- รูปแบบความเหนื่อยล้าตามระยะเวลาเซสชัน
- การจัดตำแหน่งองค์ประกอบ UI
- ประวัติการโต้ตอบก่อนหน้า
คุณอาจชอบ