Bạn đã chuyển từ HTTP thô sang một trình duyệt thật. Dấu vân tay TLS: thật sự của Chrome. IP: residential. Vậy mà trang web vẫn biết. Trong năm 2026, việc phát hiện trình duyệt headless đã đi xa hơn nhiều so với navigator.webdriver — thế hệ kiểm tra hiện tại phát hiện chính giao thức tự động hóa, và phần lớn các plugin "stealth" vá các tín hiệu của hôm qua trong khi phô bày ầm ĩ các tín hiệu của hôm nay.
Bài viết này lập bản đồ những gì các trang web thực sự kiểm tra bây giờ, gần như theo thứ tự chúng kiểm tra, và điều gì thực sự giúp ích ở mỗi lớp. Nó hoàn thiện bộ ba về phát hiện cùng với lấy dấu vân tay TLS JA3/JA4 (lớp mạng) và danh tiếng IP & ASN (lớp địa chỉ) — đây là lớp trình duyệt.
navigator.webdriver — theo đặc tả buộc phải là true khi tự động hóa. Các thiết lập stealth của Playwright/Puppeteer giấu nó đi; cờ --disable-blink-features=AutomationControlled của Chrome xử lý nó một cách tự nhiên. Các trang vẫn kiểm tra vì nó miễn phí và bắt được các bot ngây thơ.HeadlessChrome/ trong User-Agent. Được sửa bởi chế độ headless mới (headless=new), vốn dùng đường dẫn binary Chrome thật.navigator.plugins rỗng, không có chrome.runtime, outerWidth 0×0. Chế độ headless cũ trượt tất cả những thứ này; headless mới phần lớn vượt qua.Nếu một mục tiêu chỉ kiểm tra Bậc 1, Playwright hiện đại với headless=new đi qua được. Các mục tiêu nghiêm túc đã vượt qua giai đoạn này từ nhiều năm trước.
Playwright và Puppeteer điều khiển Chrome qua Chrome DevTools Protocol, và CDP để lại các tác dụng phụ thời gian chạy mà JavaScript của trang có thể quan sát:
// Rò rỉ CDP kinh điển: callback tuần tự hóa
const err = new Error();
Object.defineProperty(err, "stack", {
get() {
// Getter này kích hoạt TRONG quá trình tuần tự hóa console -
// điều chỉ xảy ra khi DevTools/CDP được gắn vào
window.__cdp_detected = true;
},
});
console.debug(err);
Các biến thể của điều này — tác dụng phụ của getter trong quá trình tuần tự hóa console, các bất thường về thời gian trong Runtime.evaluate, hành vi của toString() trên các hàm native đã được vá — có trong mọi bộ anti-bot thương mại. Điểm mấu chốt: điều này phát hiện giao thức, không phải chế độ headless. Một Chrome có giao diện, đã được vá stealth, trông giống con người một cách hoàn hảo vẫn trượt nếu nó được điều khiển qua CDP.
Điều giúp ích:
Ngoài các dấu vết, các hệ thống hiện đại kiểm tra liệu câu chuyện của trình duyệt có nhất quán nội tại hay không:
| Kiểm tra | Dấu hiệu bot |
|---|---|
| Hash render Canvas / WebGL | Render phần mềm SwiftShader/llvmpipe = GPU máy chủ; hoặc một hash bị chia sẻ bởi 10.000 "người dùng khác nhau" |
| Font & codec | Bộ font máy chủ Linux dưới một User-Agent Windows |
| Múi giờ × locale × IP geo | Intl nói UTC, IP nói Texas, Accept-Language nói de-DE |
| Chỉ số màn hình | 1920×1080 không có thanh tác vụ, devicePixelRatio đúng bằng 1, cửa sổ chưa bao giờ thay đổi kích thước |
| Số luồng phần cứng / bộ nhớ | 96 nhân được báo cáo cho một trang tự nhận là điện thoại |
| Vi tín hiệu hành vi | Không có entropy chuột, điền form tức thì, cuộn theo các bước 100px giống hệt nhau |
Đây là nơi stealth tự làm chết: mọi bản vá bạn áp dụng phải đồng nhất với mọi tín hiệu khác. Một UA Windows giả mạo trên một container Linux mâu thuẫn với font, chuỗi GPU, và dấu vân tay TCP cùng một lúc. Tính mạch lạc thắng sự hoàn hảo — một Chrome Linux có giao diện trung thực chấm điểm tốt hơn một Chrome "Windows" giả mạo vụng về.
Không điều nào trong số này có ý nghĩa nếu lớp địa chỉ đã bị cháy: một trình duyệt hoàn hảo trên một ASN datacenter vẫn là "một trình duyệt hoàn hảo trong một datacenter" — và các ngưỡng phát hiện headless thích ứng theo danh tiếng IP. Cùng một trình duyệt nhận nhiều thử thách JavaScript hơn từ một IP bị gắn cờ. Các điểm thoát residential thực sự hạ thấp mức độ soi xét mà lớp trình duyệt phải sống sót:
browser = p.chromium.launch(
headless=False, # headed survives more checks
args=["--disable-blink-features=AutomationControlled"],
proxy={
"server": "us.jibaoproxy.com:913",
"username": "USERNAME", "password": "PASSWORD",
},
)
toString() chưa vá tự nó là một tín hiệu. Ít hơn, các bản vá mạch lạc, thì thắng.IP residential khớp với câu chuyện mà dấu vân tay của bạn kể — 500MB lưu lượng miễn phí, không cần thẻ.
Bắt Đầu Dùng Thử Miễn PhíNgười dùng mới nhận 500MB khi đăng ký, cùng tiền thưởng cho lần nạp đầu tiên. Ưu đãi có thời hạn.