Chuyển đến nội dung

Lựa chọn thay thế puppeteer-extra-plugin-stealth mã nguồn mở

Stealth plugin vẫn là cách được cài nhiều nhất để gắn evasion vào Puppeteer, với khoảng 840.000 lượt tải mỗi tuần, nhưng đã không có bản phát hành mới nào từ tháng 3/2023. Mỗi evasion là một patch JavaScript trên Chrome nguyên bản, và patch JavaScript thì tự để lộ mình. Clearcote đặt các giá trị đó một cách native ngay trong engine.

puppeteer-extra-plugin-stealth là gì?

puppeteer-extra-plugin-stealth (của berstend) là một bộ module evasion JavaScript được chèn bằng page.evaluateOnNewDocument trước khi script của trang chạy. Mỗi module vá một dấu hiệu: navigator.webdriver, plugin, chrome.runtime, WebGL vendor, iframe, codec và nhiều thứ khác. Plugin dùng giấy phép MIT và cực kỳ phổ biến, với khoảng 840.000 lượt tải npm mỗi tuần, và cách tiếp cận của nó đã được port sang playwright-stealth và selenium-stealth.

Trên thực tế, plugin cũng không còn được bảo trì: bản phát hành npm cuối (2.11.2) ra vào tháng 3/2023, và repository không thay đổi từ giữa năm 2024. Giới hạn về cấu trúc thì đã có từ trước đó. Đây là các lớp ghi đè JavaScript trên một engine nguyên bản, và lớp ghi đè tự để lộ mình qua Function.prototype.toString, qua property descriptor bị thay đổi, và qua việc đọc lại từ Web Worker hoặc iframe cross-origin, nơi không có patch. Nó không thay đổi giá trị native, không động đến TLS hay HTTP/2, và không xử lý lỗ rò CDP Runtime.enable. Chính README của nó cũng thừa nhận rằng việc ngăn chặn mọi cách phát hiện Chromium headless có lẽ là bất khả thi.

Clearcote vs puppeteer-extra-plugin-stealth

Tính năngClearcotepuppeteer-extra-plugin-stealth
Cách tiếp cận Patch C++ ở cấp engine: giá trị native Evasion JavaScript chèn vào từng document
Điểm lộ có thể bị phát hiện Không có: native ở mọi realm (trang, worker, iframe) Lộ ra qua toString, descriptor, việc đọc lại từ worker và iframe
Tính nhất quán TLS / mạng Theo phiên bản Chrome tự nhận (JA3/JA4 + HTTP/2) Không xử lý
Framework Playwright & Puppeteer (Python, Node, .NET) Puppeteer (Node); playwright-extra cho Playwright
Bảo trì Đang phát triển tích cực Bản phát hành cuối: tháng 3/2023
Giấy phép Bản build mở: BSD-3 MIT
Chi phí Bản build mở miễn phí; bản build mới nhất miễn phí với GitHub Miễn phí & mã nguồn mở

Bảng so sánh được tổng hợp ngày tháng 9 năm 2026. puppeteer-extra-plugin-stealth là Mã nguồn mở (MIT); thông tin có thể thay đổi — hãy xem trang dự án của nó để có thông tin mới nhất.

Vì sao các team chọn Clearcote

Native, không phải ghi đè

Mỗi evasion của stealth plugin là một lớp ghi đè JavaScript mà công cụ phát hiện có thể bắt được. Clearcote đặt các giá trị ngay trong engine, nên chúng hiện ra như native và không có lớp ghi đè nào để tìm.

Nhất quán giữa các realm

Các patch JavaScript áp vào trang sẽ bị lệch trong Web Worker và iframe cross-origin. Giá trị ở cấp engine khớp ở mọi nơi, khép lại cả nhóm dấu hiệu đó.

Tầng mạng

Plugin không có quyền truy cập TLS hay HTTP/2. Handshake của Clearcote theo đúng phiên bản Chrome tự nhận, nên những gì đi trên đường truyền khớp với JavaScript.

Được bảo trì và kiểm chứng

Clearcote được kiểm tra bằng các bài test công khai ở mỗi bản phát hành. Các evasion của plugin có từ đầu năm 2023, và Chrome đã tiến thêm hàng chục phiên bản kể từ đó.

Khi nào puppeteer-extra-plugin-stealth có thể là lựa chọn tốt hơn

  • Bạn đang dùng Puppeteer và muốn một bộ evasion chỉ cần một dòng code cho các trang mục tiêu dễ tính.
  • Bạn cần một thứ theo giấy phép MIT để gắn vào một scraper Node sẵn có.
  • Với các trang test công khai và các cơ chế phát hiện cũ, nó nhanh và đôi khi là đủ.

Câu hỏi thường gặp

puppeteer-extra-plugin-stealth còn được bảo trì không?

Không còn tích cực. Bản phát hành npm cuối cùng, 2.11.2, ra từ tháng 3/2023 và repository không được cập nhật từ tháng 7/2024. Nó vẫn cài được và được dùng rất nhiều, nhưng các evasion đã không theo kịp Chrome.

Vì sao các patch stealth bằng JavaScript bị phát hiện?

Vì chúng là lớp ghi đè lên một hàm thật. Công cụ phát hiện có thể chuyển hàm đó thành chuỗi (hàm native sẽ hiện [native code]; hàm ghi đè lộ ra mã nguồn của chính nó), kiểm tra property descriptor, hoặc đọc lại giá trị từ một iframe hay Web Worker mới, nơi patch không được áp dụng. Thay đổi ở cấp engine tránh được điều này vì giá trị là native ở mọi nơi.

Clearcote khác stealth plugin ở điểm nào?

Plugin chèn các evasion JavaScript vào Chrome nguyên bản; Clearcote là một Chromium đã chỉnh sửa, nơi các giá trị là native trong engine, nhất quán giữa worker và iframe, cùng một persona TLS/HTTP-2 mà plugin không có quyền truy cập.

Có phiên bản cho Playwright không?

Có: playwright-extra có thể nạp cùng plugin đó trong Node, còn playwright-stealth port nó sang Python. Cả hai có chung thiết kế ghi đè bằng JavaScript.

Bài đọc liên quan

Hỏi đápWhy does Function.toString() reveal a hooked function?Calling toString() on a native function returns “[native code]”; an override returns its own source instead — so detectors stringify APIs to catch JavaScript spoofs.So sánhClearcote vs playwright-stealthplaywright-stealth là cách nhanh nhất để thêm stealth cho Playwright trong Python: chỉ cần một wrapper là mọi trang đều được gắn một bộ evasion JavaScript. Nhưng các evasion đó là lớp ghi đè trên trình duyệt nguyên bản, và chính maintainer gọi nó là một bản proof of concept. Clearcote thì đặt các giá trị đó một cách native ngay trong engine, nên trang web không có lớp ghi đè nào để tìm ra.Nghiên cứuCoherence over camouflage: why a plausible identity beats a hidden oneMost stealth tooling tries to hide. The signals that survive scrutiny don't hide — they agree with each other.So sánhClearcote vs CamoufoxCamoufox là một trình duyệt antidetect mã nguồn mở được làm kỹ lưỡng, xây trên Firefox. Clearcote áp dụng cùng cách tiếp cận ở cấp engine cho Chromium, để tự động hóa của bạn thể hiện ra đúng loại trình duyệt mà khoảng 69% web thực sự dùng, thay vì loại chỉ khoảng 3% dùng.So sánhClearcote vs CloakBrowserCloakBrowser là một bản Chromium stealth ở cấp engine có năng lực và được đông đảo người dùng theo dõi, nhưng binary đã vá là mã nguồn đóng. Clearcote cũng can thiệp ở cấp engine, chạy Chromium mới hơn và có bản build mở mà bạn đọc và build lại được từng patch.So sánhClearcote vs undetected-chromedriverundetected-chromedriver vẫn được tải khoảng 2 triệu lượt mỗi tháng, nhưng bản phát hành cuối là từ tháng 2/2024. Nó che điểm lộ Selenium/ChromeDriver trên Chrome nguyên bản và không hề động đến fingerprint hay tầng mạng. Clearcote thay đổi cả hai trong engine.

Dùng thử lựa chọn thay thế Chromium mã nguồn mở

Miễn phí và mã nguồn mở, thay thế drop-in cho Playwright & Puppeteer, nhất quán đến tận TLS handshake.

Miễn phí cho một trình duyệt với GitHub. Không cần thẻ.