โปรเจกต์ที่ทะเยอทะยานของนักพัฒนาในการสร้าง browser แบบกำหนดเองเพื่อควบคุม fingerprinting อย่างแม่นยำได้จุดประกายการถกเถียงที่น่าสนใจในชุมชนเทคโนโลยีเกี่ยวกับความจำเป็นของโซลูชันที่ซับซ้อนเช่นนี้ เมื่อทางเลือกที่ง่ายกว่าอาจมีอยู่แล้ว
โปรเจกต์นี้เริ่มต้นจากการแก้ปัญหาการ web scraping ที่นักพัฒนาต้องการหลีกเลี่ยงการตรวจจับ fingerprinting โดยการควบคุมทุกด้านของ rendering stack ของ browser ซึ่งนำไปสู่การแก้ไข source code ของ Chromium อย่างกว้างขวาง รวมถึงการ patch GPU services, การใช้งาน WebGL และ system-level hooks ต่างๆ
Chromium Hooks ที่วางแผนไว้:
- GPU Service Hooks
- DOM Rendering Hooks
- Thread Hooks
- OS Hooks
- Memory Hooks
- Debugging Hooks
- Process Hooks
- Networking Hooks
- Input/Output Hooks
- Audio Hooks
- Video Hooks
- Filesystem Hooks
- Crypto Hooks
- Performance Hooks
![]() |
---|
การสำรวจความซับซ้อนของการปรับแต่งเบราว์เซอร์และเทคนิค fingerprinting ใน web scraping |
ชุมชนชี้ไปที่โซลูชัน Extension ที่มีอยู่แล้ว
สมาชิกชุมชนหลายคนระบุอย่างรวดเร็วว่าฟังก์ชันการทำงานส่วนใหญ่ที่ต้องการอาจทำได้ผ่าน browser extensions แล้ว ผู้แสดงความเห็นคนหนึ่งเน้นย้ำถึง JShelter ซึ่งเป็น Firefox extension ที่มีอยู่แล้วและให้การป้องกัน fingerprinting ในขณะที่คนอื่นๆ ชี้ไปที่ chrome.scripting API และ JavaScript Proxy objects เป็นทางเลือกที่เป็นไปได้
การถกเถียงเผยให้เห็นว่า content scripts สามารถถูก inject เข้าไปใน web pages แบบไดนามิกและใช้ Proxy objects เพื่อ hook JavaScript functions อย่างโปร่งใส แนวทางนี้จะมีความสามารถในการพกพาได้มากกว่าและต้องใช้ความพยายามในการพัฒนาน้อยกว่าการ compile Chromium build แบบกำหนดเองมาก
ทางเลือกอื่นที่ได้รับการกล่าวถึง:
- ส่วนขยาย JShelter: ส่วนขยาย Firefox สำหรับการป้องกันการสร้างลายนิ้วมือดิจิทัล
- Chrome.scripting API: อนุญาตให้มีการฉีดสคริปต์แบบไดนามิกเข้าไปในหน้าเว็บ
- JavaScript Proxy Objects: เปิดใช้งานการเชื่อมต่อฟังก์ชันแบบโปร่งใส
- Content Scripts: สามารถฉีดเข้าไปใน main world แทนที่จะเป็น isolated world
ข้อได้เปรียบทางเทคนิคของแนวทาง Custom Browser
แม้จะมีทางเลือกที่ง่ายกว่า แต่แนวทาง custom browser ก็มีประโยชน์เฉพาะบางอย่าง นักพัฒนายืนยันว่าการเข้าถึง internals ของ Chromium โดยตรงให้ความสามารถในการซ่อนตัวที่ดีกว่าและความสามารถในการ hook out-of-process iframes ได้อย่างมีประสิทธิภาพมากกว่า
โดยการ patch GPU service โดยตรง custom browser สามารถแก้ไข OpenGL และ DirectX calls ในระดับที่ต่ำกว่าโซลูชันที่ใช้ JavaScript มาก การรวมเข้าด้วยกันอย่างลึกซึ้งนี้ช่วยให้สามารถหลีกเลี่ยง fingerprinting ได้อย่างซับซ้อนมากขึ้น ซึ่งจะยากหรือเป็นไปไม่ได้ที่จะตรวจจับจาก web page scripts
![]() |
---|
อินเทอร์เฟซ Electron ที่กำหนดเองซึ่งเป็นตัวอย่างของความสามารถพิเศษจากการปรับแต่งเบราว์เซอร์ของนักพัฒนา |
เกมแมวไล่หนูของการตรวจจับ
การสนทนายังสัมผัสถึงการต่อสู้ที่ดำเนินต่อไประหว่าง hooking tools และระบบตรวจจับ สมาชิกชุมชนคนหนึ่งที่ทำงานเกี่ยวกับการดาวน์โหลดวิดีโอ YouTube แสดงความกังวลเกี่ยวกับแพลตฟอร์มที่อาจตรวจจับ proxy-based hooks ได้ในที่สุดหากมีความนิยมมากพอ
ผมไม่คิดว่าเรื่องนี้จะแก้ได้อย่างสมบูรณ์โดยไม่ต้องแก้ไข browser engine เอง - แล้วคุณก็สามารถ hook สิ่งต่างๆ ในแบบที่โปร่งใสอย่างสมบูรณ์ต่อ JS ใน webpages
สิ่งนี้เน้นย้ำถึงข้อได้เปรียบสำคัญของแนวทาง custom browser: ความโปร่งใสอย่างสมบูรณ์ต่อ web page scripts ทำให้การตรวจจับเป็นไปไม่ได้เกือบจะเลย
ประสบการณ์การเรียนรู้ vs โซลูชันที่ใช้งานได้จริง
นักพัฒนายอมรับว่าฟังก์ชันการทำงานส่วนใหญ่สามารถทำได้ผ่าน extensions แต่เน้นย้ำถึงคุณค่าทางการศึกษาของโปรเจกต์ การสร้าง custom browser ให้ความเข้าใจอย่างลึกซึ้งเกี่ยวกับ browser internals และเปิดโอกาสสำหรับฟีเจอร์ขั้นสูงมากขึ้น
roadmap ของโปรเจกต์รวมถึง hooks ที่กว้างขวางสำหรับ GPU services, DOM rendering, threading, networking และ system components ต่างๆ แม้จะทะเยอทะยาน แต่แนวทางที่ครอบคลุมนี้สามารถเปิดใช้งานความสามารถที่ไปไกลกว่าสิ่งที่ browser extensions สามารถทำได้
การถกเถียงแสดงให้เห็นว่าชุมชนเทคโนโลยีให้ความสำคัญทั้งกับประสิทธิภาพเชิงปฏิบัติและการสำรวจเพื่อการศึกษา โดยสมาชิกบางคนแสดงความสนใจในการมีส่วนร่วมในโปรเจกต์แม้จะมีทางเลือกที่ง่ายกว่าอยู่