Trang “kiểm tra trình duyệt” của Cloudflare thử API, đặc điểm engine và proof-of-work, cộng thêm TLS và uy tín IP. Vì sao người thật vẫn bị kẹt vòng lặp.
Bạn bấm vào một liên kết, nhưng thay vì trang cần xem, bạn gặp một màn hình chờ: trang Cloudflare kiểu cũ ghi "Checking your browser before accessing…" (Đang kiểm tra trình duyệt của bạn), kiểu mới thì hiện dòng như "Verifying you are human" (Đang xác minh bạn là người thật), đôi khi kèm một ô tick. Bạn không nhập sai mật khẩu, cũng chẳng làm gì bất thường — chỉ bấm một liên kết. Đây là một trong những kiểu gián đoạn phổ biến nhất trên web, vậy mà chính trang đó gần như không giải thích gì. Bài này nói rõ nó thực sự kiểm tra gì, Cloudflare đã biết gì về bạn trước khi bước kiểm tra bắt đầu, và vì sao một người dùng hoàn toàn bình thường vẫn có thể bị kẹt trong vòng lặp.
Những điểm chính
- Màn hình đó là một bước xác minh (challenge) của Cloudflare: một đoạn script ngắn chạy loạt bài kiểm tra không cần tương tác trong trình duyệt — dò các Web API, tìm những đặc điểm riêng của engine trình duyệt, giải các tác vụ proof-of-work nhỏ — rồi gửi kết quả về trước khi trang web tải. Theo Cloudflare, trung bình việc này mất khoảng một giây.
- Đó mới chỉ là một nửa. Cloudflare đã chấm điểm kết nối của bạn từ trước: chữ ký bắt tay TLS/HTTP-2, uy tín IP, và mạng (ASN) mà IP đó thuộc về. Điểm số này quyết định phần lớn việc bạn có bị yêu cầu xác minh hay không.
- Bị kẹt vòng lặp thường do môi trường, không phải do bạn làm gì đáng ngờ: cookie thông hành bị chặn, đồng hồ hệ thống lệch nhiều, tiện ích mở rộng can thiệp vào API trình duyệt, IP dùng chung của VPN/trung tâm dữ liệu/CGNAT, trình duyệt nhúng trong ứng dụng, hoặc trình duyệt bị siết chặt quá mức.
- Cloudflare gần như đã bỏ CAPTCHA hình ảnh: hãng cho biết đã giảm 91% số CAPTCHA hiển thị, và trên trang xác minh đã thay CAPTCHA bằng ô tick của Turnstile.
- Bước xác minh là một cánh cổng: phán quyết cho qua/không cho qua với một yêu cầu. Các công cụ kiểm tra vân tay và phát hiện bot là tấm gương: chỉ cho bạn thấy tín hiệu của mình, không phán quyết gì.
Trang này thực sự đang làm gì
Khi thiết lập bảo mật Cloudflare của một trang web cho rằng một yêu cầu cần được xem xét kỹ hơn trước khi tới máy chủ gốc, Cloudflare sẽ trả về một trang xác minh trung gian thay vì trang bạn muốn mở. Cloudflare mô tả quy trình này (Managed Challenge) là trước tiên chạy "một loạt thử thách JavaScript nhỏ, không tương tác, để thu thập thêm tín hiệu về khách truy cập", và các thử thách đó "bao gồm nhưng không giới hạn ở proof-of-work, proof-of-space, dò các Web API, và nhiều bài kiểm tra phát hiện đặc điểm riêng của trình duyệt". Chỉ khi các kết quả này — cùng cách trình duyệt hành xử lúc chạy chúng — vẫn chưa đủ để kết luận, bạn mới phải bấm vào thứ gì đó.
Cloudflare không công bố danh sách bài kiểm tra cụ thể (công bố chẳng khác nào đưa bản đồ cho kẻ muốn vượt qua), nhưng dữ liệu đầu vào chia rõ thành hai nhóm:
- Tín hiệu script thu thập bên trong trình duyệt. Tác vụ proof-of-work và proof-of-space buộc trình duyệt tiêu tốn một lượng tính toán và bộ nhớ thật, nhỏ nhưng đo được. Dò API kiểm tra xem các tính năng trình duyệt tuyên bố hỗ trợ có thực sự tồn tại và hoạt động đúng như engine đó hay không. Phát hiện đặc điểm riêng (quirks) tìm những điểm khác thường nhỏ, đặc trưng của từng engine mà Chrome, Firefox hay Safari thật đều có, còn một script giả mạo User-Agent thường không bắt chước được. Đây là cùng nhóm tín hiệu mà công cụ kiểm tra vân tay của trang này hiển thị, và cùng logic nhất quán được nói tới trong bài Trình duyệt headless bị phát hiện thế nào: môi trường tự động hóa và giả mạo thường tự mâu thuẫn theo cách trình duyệt thật không mắc phải.
- Tín hiệu từ chính kết nối, mà không script nào trên trang nhìn thấy được. Quá trình bắt tay TLS và thiết lập HTTP/2 của trình duyệt tạo thành một chữ ký riêng, độc lập với mọi thứ JavaScript báo cáo — xem TLS Fingerprinting: Cách JA3/JA4 nhận diện client của bạn để biết chữ ký đó được tạo ra thế nào. Đi kèm là uy tín của địa chỉ IP bạn kết nối từ đó, và mạng (ASN) sở hữu IP ấy. Những thứ này được Cloudflare đánh giá ở biên mạng trước khi bất kỳ script xác minh nào chạy — nên một IP dân dụng có lịch sử sạch và một IP trung tâm dữ liệu từng bị báo cáo vì scraping xuất phát từ hai vị trí rất khác nhau.
Không tín hiệu nào tự mình quyết định kết quả. Giống hệ thống phát hiện nhiều lớp được mô tả trong Kỹ thuật phát hiện bot, bước xác minh gộp nhiều tín hiệu yếu thành một phán quyết.
Vì sao người thật vẫn bị kẹt vòng lặp
Nếu bạn chính là người đang nhìn vòng xoay tải trang, đây là phần hữu ích nhất. Không nguyên nhân nào dưới đây có nghĩa là bạn làm sai điều gì — chúng chỉ là những tình huống mà bước xác minh không đọc ra được rõ ràng:
- Cookie bị chặn hoặc bị xóa. Khi bạn vượt qua, Cloudflare đặt một cookie thông hành (
cf_clearance) để các yêu cầu sau không phải kiểm tra lại. Nếu cài đặt trình duyệt hay một tiện ích mở rộng chặn cookie của trang đó, hoặc xóa chúng mỗi lần tải, dấu "đã qua" không được giữ lại và mỗi yêu cầu đều trông như mới hoàn toàn. - Đồng hồ hệ thống lệch nhiều. Quyền thông hành chỉ có hiệu lực trong một khoảng thời gian. Nếu đồng hồ thiết bị lệch đủ xa, quyền vừa được cấp có thể bị coi là đã hết hạn hoặc chưa có hiệu lực, và bạn lại bị đưa về trang xác minh.
- Tiện ích mở rộng can thiệp vào API trình duyệt. Các tiện ích chống lấy vân tay giả mạo, chặn hoặc thêm nhiễu vào API (bộ tiêm nhiễu Canvas là ví dụ phổ biến) không chỉ giấu bạn đi — chúng có thể khiến trình duyệt tự mâu thuẫn. Điều đó trông rất khác so với một trình duyệt bình thường chỉ đơn giản để lộ ít thông tin hơn.
- IP dùng chung của VPN, trung tâm dữ liệu hoặc CGNAT. Nhiều node thoát VPN và phần lớn dải IP trung tâm dữ liệu đã từng bị ai đó dùng để gửi lưu lượng lạm dụng; còn CGNAT (NAT cấp nhà mạng) đặt rất nhiều thuê bao di động hoặc Internet gia đình sau cùng một địa chỉ. Uy tín gắn với IP, không phải với bạn — đó là lý do người dùng VPN gặp bước xác minh nhiều hơn hẳn mức trung bình.
- Trình duyệt nhúng trong ứng dụng. Liên kết mở bên trong ứng dụng mạng xã hội hoặc nhắn tin sẽ tải trong WebView nhúng, thường cung cấp ít API hơn và kém nhất quán hơn một trình duyệt độc lập đầy đủ.
- Trình duyệt quá cũ hoặc bị siết chặt quá mức. Các bài kiểm tra đặc điểm và API mặc định trình duyệt phải hoạt động giống một engine quen thuộc, còn được cập nhật. Một phiên bản rất cũ, hoặc cài đặt quyền riêng tư tắt bớt API và giảm tối đa vân tay, có thể trông giống tự động hóa hơn là người thật — bước xác minh khó phân biệt "một người đã siết chặt trình duyệt" với "một script giả làm trình duyệt".
Nên thử gì khi bị kẹt
- Cho phép cookie với trang đó (hoặc tắt tiện ích/cài đặt đang xóa cookie), rồi tải lại trang.
- Đảm bảo ngày, giờ và múi giờ trên thiết bị được đặt tự động.
- Tắt tiện ích quyền riêng tư hoặc chặn quảng cáo cho riêng trang đó, hoặc thử một hồ sơ trình duyệt mới.
- Nếu liên kết mở trong một ứng dụng, hãy mở lại bằng trình duyệt bạn thường dùng.
- Đổi mạng — dữ liệu di động thay cho Wi-Fi, hoặc máy chủ VPN khác — để có một IP với uy tín khác.
- Nếu vẫn không được, hãy liên hệ trang web và gửi kèm Ray ID hiển thị ở cuối trang xác minh. Mỗi trang tự đặt mức bảo mật của mình, và Ray ID giúp đội vận hành tìm đúng yêu cầu của bạn.
Từ CAPTCHA đến kiểm tra vô hình
CAPTCHA truyền thống buộc bạn chủ động chứng minh điều gì đó — đọc chữ bị bóp méo, chọn ô có đèn giao thông — và làm gián đoạn mọi người nhìn thấy nó, kể cả người thật. Cloudflare đã giải thích lý do từ bỏ mô hình này trong bài The end of the road for Cloudflare CAPTCHAs: Managed Challenge "hoãn quyết định có hiển thị câu đố hình ảnh hay không" cho đến khi trình duyệt cung cấp thêm thông tin. Theo Cloudflare, cách này giúp giảm 91% số CAPTCHA hãng chủ động hiển thị, và rút thời gian khách truy cập mất cho bước xác minh "từ trung bình 32 giây xuống trung bình chỉ một giây".
Cùng cách tiếp cận đó đã trở thành Turnstile. Cloudflare mô tả nó chạy "một loạt bài kiểm tra trong trình duyệt, kiểm tra đặc điểm trình duyệt, các API gốc của trình duyệt, và yêu cầu trình duyệt vượt qua các bài kiểm tra nhẹ (ví dụ proof-of-work, proof-of-space)". Trong bài Cloudflare is free of CAPTCHAs; Turnstile is free for everyone, Cloudflare cho biết đã "thay thử thách CAPTCHA bằng giải pháp ô tick của riêng mình". Vì vậy ô tick đôi khi bạn thấy không phải câu đố, mà là bước cuối nhẹ nhàng cho những trường hợp các bài kiểm tra chạy ngầm chưa đủ để kết luận. "Chứng minh bạn là người" không còn nghĩa là "giải giúp chúng tôi một câu đố", mà là "hãy để chúng tôi quan sát trình duyệt của bạn trong một giây".
Một cánh cổng, không phải tấm gương
Bước xác minh của Cloudflare là một cánh cổng: nó đưa ra phán quyết cho qua/không cho qua với một yêu cầu cụ thể, và phán quyết đó có hậu quả thật — bạn vào được, hoặc không.
CreepJS, BrowserLeaks và các điểm ẩn danh được so sánh trong bài Vì sao các công cụ kiểm tra vân tay bất đồng về bạn là tấm gương. Chúng cho bạn thấy tín hiệu của chính mình — nhìn chung cùng những nhóm mà bước xác minh quan tâm — nhưng không có phán quyết và không có hậu quả. Chạy trình duyệt qua một công cụ như vậy không cho bạn biết bước xác minh của một trang cụ thể có cho bạn qua hay không, vì điều đó còn phụ thuộc vào thiết lập của trang và dữ liệu kết nối mà các công cụ đó không thấy. Điều chúng cho bạn thấy là những gì bước xác minh có thể để ý.
Nên làm gì tiếp theo
Để xem trình duyệt của bạn để lộ những tín hiệu liên quan đến tự động hóa nào, hãy dùng công cụ phát hiện bot của BrowserInsight: nó kiểm tra riêng từng mục — navigator.webdriver, dấu hiệu headless, và dấu vết Selenium/Puppeteer/Playwright — thay vì gộp thành một kết luận chung. Nếu trình duyệt bạn dùng hằng ngày bị đánh dấu mục nào ở đó, rất có thể đó là thứ bước xác minh đang phản ứng.
Nếu nghi ngờ nguyên nhân là IP, công cụ kiểm tra IP cho biết ASN và trạng thái danh sách đen của địa chỉ bạn đang dùng, còn công cụ kiểm tra VPN và proxy cho biết địa chỉ đó có trông giống VPN, proxy hay trung tâm dữ liệu không. Nếu bạn hoàn toàn không dùng VPN mà vẫn bị đối xử như người dùng VPN, bài Bị gắn nhãn VPN dù không dùng VPN: vì sao lại xảy ra giải thích CGNAT, dữ liệu IP lỗi thời và việc phân loại sai ASN gây ra điều đó thế nào.
Câu hỏi thường gặp
"Đang kiểm tra trình duyệt" có giống CAPTCHA không?
Không. CAPTCHA yêu cầu bạn giải một thứ gì đó. Trang "đang kiểm tra trình duyệt" chạy các bài kiểm tra tự động, không cần tương tác, rồi gửi kết quả về. Trên Cloudflare, bạn chỉ được yêu cầu bấm ô tick khi các bài kiểm tra đó chưa đủ để kết luận — và kể cả khi đó cũng không có câu đố nào.
Vì sao lần tải trang nào tôi cũng gặp lại bước xác minh?
Gần như luôn là vì bước xác minh không nhớ được rằng bạn đã vượt qua — thường do cookie bị chặn hoặc bị xóa, bạn đang duyệt ở chế độ riêng tư/ẩn danh, hoặc một tiện ích mở rộng xóa dữ liệu trang web. Không có "trí nhớ" đó, mỗi yêu cầu lại phải xác minh từ đầu. Nếu cookie không có vấn đề, hãy kiểm tra tiếp đồng hồ hệ thống.
Dùng VPN có khiến việc này xảy ra thường xuyên hơn không?
Có, và thường không phải do bạn mà do IP thoát của VPN. Địa chỉ VPN và trung tâm dữ liệu được nhiều người dùng chung; nếu từng có lưu lượng lạm dụng phát ra từ địa chỉ đó, uy tín xấu của nó sẽ theo vào phiên của bạn. Đổi sang máy chủ khác thường sẽ đỡ hơn.
Công cụ kiểm tra vân tay hoặc ẩn danh có cho tôi biết mình có qua được bước xác minh của một trang cụ thể không?
Không trực tiếp. Những công cụ đó là tấm gương — cho thấy các tín hiệu mà bước xác minh có thể đọc, nhưng không phán quyết. Bước xác minh là cánh cổng: nó kết hợp các tín hiệu đó với thiết lập bảo mật của trang và dữ liệu kết nối (TLS, uy tín IP, ASN) mà công cụ chạy trên trang không bao giờ thấy được. Vì vậy chỉ chính bước xác minh mới trả lời được bạn có qua hay không.
Trình duyệt bị siết chặt, tập trung vào quyền riêng tư có dễ bị xác minh hơn không?
Có thể. Không phải vì công cụ quyền riêng tư đáng ngờ, mà vì các tín hiệu bị giả mạo hoặc chặn nhiều có thể trông giống một script đang cố che giấu việc tự động hóa. Đó là sự trùng hợp giữa hai ý định hoàn toàn khác nhau, không phải bằng chứng rằng người dùng coi trọng quyền riêng tư đang bị nhắm tới có chủ đích.
Đọc thêm
- Kỹ thuật phát hiện bot: Cách nhận diện bot và trình thu thập
- Trình duyệt headless bị phát hiện: Selenium, Playwright và CDP
- Phát hiện bot theo hành vi: Chuyển động chuột phi tự nhiên
- TLS Fingerprinting: Cách JA3/JA4 Nhận Diện Client của Bạn
- Bị gắn nhãn VPN dù không dùng VPN: vì sao lại xảy ra
- Vì Sao Các Công Cụ Kiểm Tra Vân Tay Bất Đồng Về Bạn


