อภิธานศัพท์ · Fingerprinting
WebGL fingerprinting
การใช้ข้อมูลกราฟิก WebGL และผลลัพธ์การเรนเดอร์เพื่อระบุอุปกรณ์
นิยาม
WebGL fingerprinting ใช้ WebGL API — อินเทอร์เฟซเบราว์เซอร์สำหรับ 2D และ 3D กราฟิกที่เร่งความเร็วด้วย GPU — เพื่อรวบรวมสัญญาณเฉพาะของอุปกรณ์: ข้อความผู้ผลิตกราฟิกและตัวเรนเดอร์, พารามิเตอร์และส่วนขยายที่รองรับ และพิกเซลของฉากที่ถูกเรนเดอร์
วิธีการทำงาน
- สคริปต์จะเปิดบริบท WebGL และสอบถามความสามารถด้วย getParameter() และรายการส่วนขยายที่รองรับ
- ในกรณีที่มีให้ใช้งาน ส่วนขยาย WEBGL_debug_renderer_info จะเปิดเผย UNMASKED_VENDOR_WEBGL และ UNMASKED_RENDERER_WEBGL ซึ่งเป็นข้อความสตริงของผู้ผลิตและตัวเรนเดอร์ของไดรเวอร์กราฟิก
- มันอาจจะเรนเดอร์ฉาก 3D และแฮชผลลัพธ์ ซึ่งคล้ายกับการทำ canvas fingerprinting
ทำไมจึงสำคัญ
- รายละเอียด GPU มีความเสถียรเมื่อเวลาผ่านไปและแตกต่างกันไปในแต่ละอุปกรณ์ ทำให้เป็นสัญญาณที่แข็งแกร่ง
- ความไม่สอดคล้องกันนั้นสำคัญ: โปรไฟล์ที่อ้างว่าเป็น Mac ในขณะที่รายงานข้อความสตริงไดรเวอร์ GPU ที่เป็นแบบ Windows-only นั้นถูกตรวจพบได้ง่าย
ข้อจำกัดและความเข้าใจผิดทั่วไป
- "ทุกเว็บไซต์สามารถอ่านรุ่น GPU ของฉันได้เสมอ" MDN ระบุว่า ขึ้นอยู่กับการตั้งค่าความเป็นส่วนตัวของเบราว์เซอร์ ส่วนขยายการดีบั๊กอาจถูกจำกัดไว้เฉพาะบริบทที่ได้รับสิทธิ์หรืออาจไม่ทำงานเลย เมื่อเปิดใช้งาน privacy.resistFingerprinting ของ Firefox มันจะถูกปิดใช้งาน
- "การปิด WebGL ทำให้ฉันล่องหน" การปิดใช้งานนั้นถือเป็นลักษณะที่พบได้ยากและสังเกตเห็นได้ และทำให้เว็บไซต์ที่จำเป็นต้องใช้มันใช้งานไม่ได้
ตัวอย่าง: หน้าเว็บที่อ่านข้อความสตริงตัวเรนเดอร์ที่ไม่ถูกปิดบังอาจเห็นตระกูล GPU และไดรเวอร์ที่เฉพาะเจาะจง ซึ่งเมื่อรวมกับขนาดหน้าจอและฟอนต์แล้ว จะช่วยจำกัดขอบเขตของอุปกรณ์ลงได้อย่างมาก
ไม่มีเบราว์เซอร์หรือพร็อกซีใดสามารถรับประกันได้ว่าบัญชีจะไม่ถูกจำกัด โปรดปฏิบัติตามกฎของแต่ละแพลตฟอร์ม
คำศัพท์ที่เกี่ยวข้อง
- Canvas fingerprinting — การระบุอุปกรณ์จากความแตกต่างเพียงเล็กน้อยในวิธีการเรนเดอร์การวาดภาพบน HTML canvas
- Browser fingerprint — การผสมผสานระหว่างลักษณะเฉพาะของเบราว์เซอร์และอุปกรณ์ที่สามารถระบุตัวตนเบราว์เซอร์ได้โดยไม่ต้องใช้คุกกี้
คู่มือที่เกี่ยวข้อง
ต้นฉบับ
- MDN: WebGL API (เอกสารเบราว์เซอร์)
- MDN: ส่วนขยาย WEBGL_debug_renderer_info (เอกสารเบราว์เซอร์)
ตรวจสอบแล้ว 2026-11-07