เว็บไซต์ส่วนใหญ่ใช้ Affiliate links หรือโฆษณาผ่านบุคคลที่สาม (หรือระบบของตัวเอง) สร้างรายได้ อาจรำคาญนิดหน่อย แตบางเว็บถึงขั้นพยายาม "ผสม" โฆษณาเข้ากับเนื้อหา เพื่อไม่ให้เป็นสoresores (Eyesore) สำหรับผู้เยี่ยมชม อีกกลุ่มเขียนสคริปต์ใช้คอมพิวเตอร์ของผู้เยี่ยมชมโดยไม่ได้รับความยินยอม เพื่อ "ขุด" (Mine) Cryptocurrency หากันได้กำไร ปัญหานี้ใหญ่จนเบราว์เซอร์นักพัฒนาเริ่มสนใจ
สคริปต์ขุดทำงานอย่างไร
ตัวอย่างดีที่สุดของการใช้สคริปต์ขุดมาจาก The Pirate Bay - เว็บดาวน์โหลดซอฟต์แวร์/สื่อปิเรตยอดนิยม - ถูกจับได้ว่ามีสคริปต์ขุด Monero จากคอมพิวเตอร์ของผู้เยี่ยมชม
ผู้ใช้จำนวนมากพบว่าเองให้รายได้ที่เว็บต้องการ (และมากกว่านั้น) โดยไม่รู้ตัว ใช้พลังคอมพิวเตอร์ขุด Cryptocurrency เจ้าของเว็บทำเพื่อหลีกเลี่ยงการแสดงโฆษณา
สคริปต์ขุดแบบนี้ทำงานได้ เพราะรันฝั่ง Client-side (Client-side execution) ในขณะที่ภาษาสคริปต์อย่าง PHP มักใช้ทรัพยากรเซิร์ฟเวอร์ส่งข้อมูลให้ไคลเอนต์แสดงหน้าเว็บ ภาษาอย่าง JavaScript พึ่งพาทรัพยากรของผู้เยี่ยมชมเกือบหมด มอบหมายงานบางส่วนของการนำเสนอหน้าเว็บให้เบราว์เซอร์ที่เยี่ยมชม
ตัวอย่าง: เขียนสคริปต์ JavaScript ขอให้เบราว์เซอร์ดึงโฆษณาจากผู้ให้บริการภายนอก คล้าย Google AdSense ในกรณีสคริปต์ขุด โค้ดขอให้เบราว์เซอร์ "บริจาค" พลังคอมพิวเตอร์ขุด Cryptocurrency และเบราว์เซอร์ยอมทำตาม ไม่รู้ว่ามีอะไรเกิดขึ้น
จะรู้ได้อย่างไรว่าถูกแฮก
วิธีง่ายที่สุดตรวจจับสคริปต์แบบนี้รันบนหน้าเว็บ: ดูที่ Task Manager ว่ามีอะไรกิน CPU ผิดปกติไหม หาก CPU usage ถึง 100% บน Core เดียว ขณะคุณแค่เยี่ยมชมหน้าข้อความ (Text-based page) และเห็นว่า Task ของเบราว์เซอร์เป็นตัวทำให้ คุณน่าจะโดนแฮก
หยุดการแฮกทันที: ปิดแท็บที่คิดว่ากินทรัพยากรหมด หากใช้เบราว์เซอร์ที่รันหลาย Tasks ใน Task Manager (หรือ Processes ใน System Monitor สำหรับ Linux) ปิด Task ที่ผิดปกติ จะปิดแท็บนั้นให้
นักพัฒนาเบราว์เซอร์ทำอะไรอยู่?
ไม่รู้ว่าทีม Mozilla หรือนักพัฒนาเบราว์เซอร์คนอื่นดูเรื่องนี้แล้ว แตเป็นไปได้ เพราะวิศวกร Google ที่โครงการ Chromium เริ่มแสดงความตระหนักรู้เกี่ยวปัญหา Ojan Vafai วิศวกรคนหนึ่ง ตอบ Bug report วันที่ 19 ต.ค. 2017 เสนอโซลูชัน รวมถึงไอเดีย Throttle แท็บที่ใช้ CPU มากอัตโนมัติ
ไม่ได้หมายความว่ามีโซลูชันทันที แตเพราะวิศวกรทราบปัญหาแล้ว มั่นใจได้ว่าพวกเขากำลังทำงานปกป้องผู้ใช้เบราว์เซอร์เร็วที่สุดเมื่อสร้าง Consensus (ข้อตกลง) ว่าจะจัดการสคริปต์ขุดอย่างไร
เนื่องจากเบราว์เซอร์มักติดตามกัน สิ่งอื่นๆ อาจเข้ามาในอนาคต
คุณคิดว่านักพัฒนาเบราว์เซอร์ควรทำอะไรต่อสคริปต์ขุด? คิดว่าเป็นทางเลือกที่ถูกต้องแทนโฆษณาได้ไหม (หากไม่กิน CPU หมด)? แชร์ความคิดในความคิดเห็น!