Phần lớn trang web dùng liên kết tiếp thị (affiliate) hoặc quảng cáo qua bên thứ ba (hoặc hệ thống riêng) để kiếm tiền. Có thể hơi khó chịu, nhưng một số trang đã đạt điểm họ cố gắng "trộn" quảng cáo vào nội dung sao cho không thành "sore eyes" (thức mắt) cho khách. Những trang khác lại viết script dùng máy tính người truy cập mà không xin phép để "khai thác" (mine) tiền điện tử để lấy lợi nhuận. Vấn đề này trở nên nghiêm trọng đến mức bắt đầu thu hút sự chú ý của nhà phát triển trình duyệt.
Cách Script Khai Thác Hoạt Động
Ví dụ tốt nhất về việc dùng script khai thác đến từ khi The Pirate Bay – đích đến phổ biến cho phần mềm và media pirated – bị bắt có script khai thác Monero từ máy người truy cập.
Nhiều người dùng phát hiện mình vô tình cho trang web doanh thu cần thiết để vận hành (và hơn nữa) bằng cách dùng sức máy tính khai thác tiền điện tử. Chủ trang làm vậy để tránh hiển thị quảng cáo.
Script khai thác như thế hoạt động vì chúng thực thi ở client-side (phía máy khách). Trong khi ngôn ngữ script như PHP thường dùng tài nguyên server để gửi dữ liệu cho client về cách hiển thị trang, ngôn ngữ như JavaScript dựa gần như hoàn toàn vào tài nguyên người truy cập, ủy thác một số tác vụ trình bày yếu tố trang cho trình duyệt truy cập trang.
Ví dụ, có thể viết script JavaScript yêu cầu trình duyệt lấy quảng cáo từ nhà cung cấp thứ ba, giống như Google AdSense. Trong trường hợp script khai thác, code yêu cầu trình duyệt đóng góp sức tính toán để khai thác tiền điện tử. Và trình duyệt tuân theo yêu cầu này, không hay biết gì.
Cách Nhận Biết Bạn Đang Bị "Chiếm Dụng" (Hijacked)
Cách đơn giản nhất phát hiện script kiểu này chạy trên trang là xem qua task (tiến trình) và xem có gì tiêu dùng CPU bất thường không. Nếu CPU usage (sử dụng CPU) đạt 100% trên một core khi bạn chỉ truy cập trang chỉ chứa văn bản (và bạn thấy một task trình duyệt là thủ phạm), bạn có thể đang bị chiếm dụng.
Để dừng việc chiếm dụng ngay, chỉ cần đóng tab bạn nghĩ đang ăn hết tài nguyên. Nếu dùng trình duyệt thực thi nhiều task trong task manager (hoặc process trong system monitor cho người dùng Linux), bạn có thể đóng task thủ phạm và nó sẽ kill tab đó cho bạn.
Nhà Phát Triển Trình Duyệt Đang Làm Gì Về Vấn Đề Này?
Tôi không biết liệu người tại Mozilla hoặc nhà phát triển trình duyệt khác đã xem xét vấn đề này, nhưng có khả năng vì kỹ sư Google tại dự án Chromium bắt đầu nhận thức được vấn đề. Ojan Vafai, một trong các kỹ sư, đã phản hồi báo cáo bug trước đó ngày 19/10/2017 và đề xuất một số giải pháp, bao gồm ý tưởng tự động hạn chế (throttle) tab dùng CPU nặng.
Điều này không có nghĩa giải pháp sẽ đến ngay, nhưng vì kỹ sư đã nhận thức vấn đề, chúng ta có thể tin họ đang làm việc bảo vệ người dùng trình duyệt sớm nhất khi xây dựng đồng thuận về cách xử lý script khai thác.
Vì trình duyệt thường theo dõi nhau, có khả năng giải pháp khác sẽ được đưa ra theo thời gian.
Bạn nghĩ nhà phát triển trình duyệt nên làm gì để chống script khai thác? Bạn coi chúng là thay thế hợp lệ cho quảng cáo (nếu chúng không nuốt chửng toàn bộ CPU)? Hãy chia sẻ mọi suy nghĩ trong bình luận!