Bỏ qua để đến nội dung
Trạng tháiBảng điều khiển

Hướng dẫn

Nhận biết loại captcha

Trang này được dịch máy từ bản tiếng Trung và có thể có sai sót. Nội dung theo bản tiếng Trung.

Bước đầu tiên để chọn đúng loại tác vụ là nhận ra captcha. Cách đáng tin cậy nhất là mở công cụ dành cho nhà phát triển của trình duyệt (F12) và xem trong bảng Network trang web tải script của captcha nào; bạn cũng có thể nhận biết qua giao diện.

Hình dạng của từng loại captcha trên trang web (hình minh họa động, không phải ảnh chụp màn hình); nhấn vào thẻ để mở trang loại tác vụ tương ứng. Nếu khó phân biệt bằng mắt, hãy xác nhận bằng bảng tra nhanh và bảng Network bên dưới.

Bạn thấy Đó là Loại tác vụ cần dùng
Ô tích “I’m not a robot” (Tôi không phải là người máy) reCAPTCHA v2 reCAPTCHA v2
Không có ô tích, bấm gửi mới hiện câu hỏi bằng hình ảnh; có logo nhỏ reCAPTCHA ở góc dưới bên phải reCAPTCHA v2 ẩn (hoặc v3) Xem mục “Các phiên bản reCAPTCHA” bên dưới
Không có bất kỳ tương tác nào, chỉ có logo nhỏ reCAPTCHA ở góc dưới bên phải reCAPTCHA v3 reCAPTCHA v3
Ô tích “Tôi là con người”, câu hỏi hình ảnh có nhãn hCaptcha hCaptcha hCaptcha
Khung xác minh của Cloudflare nằm trong biểu mẫu, tích xong trang không chuyển hướng Cloudflare Turnstile Turnstile
Cả trang hiện “Vui lòng chờ… / Đang kiểm tra kết nối của bạn”, rồi tự động chuyển hướng Trang thử thách Cloudflare Trang thử thách Cloudflare
Câu đố ghép hình, chọn ảnh của Arkose Labs (ví dụ “chọn hình ảnh hướng đúng chiều lên trên”) FunCaptcha FunCaptcha nhận dạng hình ảnh
Một ảnh chứa chữ cái và chữ số bị méo Captcha ký tự Nhận dạng chữ và số trong ảnh

Tìm api.js hoặc enterprise.js trong bảng Network:

Script được tải Phiên bản
recaptcha/api.js, không có tham số render hoặc render=explicit v2 thường
Như trên, và địa chỉ của yêu cầu anchor có size=invisible v2 ẩn, thêm "isInvisible": true vào tác vụ
recaptcha/api.js?render=SITE_KEY (render không phải explicit) v3 thường
recaptcha/enterprise.js, không có tham số render hoặc render=explicit v2 Enterprise
recaptcha/enterprise.js?render=SITE_KEY v3 Enterprise

Ví dụ:

https://www.google.com/recaptcha/api.js?onload=onloadcallback&render=explicit → v2
https://www.google.com/recaptcha/api.js?render=6LdyC2cUAAAAACGuDKpXeDorzUDWXmdqeg-xy696 → v3
https://www.google.com/recaptcha/enterprise.js?render=explicit → v2 Enterprise

Đôi khi v2 ẩn chỉ vượt qua được khi dùng loại tác vụ của v3, hãy thử cả hai.

Bạn cũng có thể chạy đoạn mã dưới đây trong Console. Nó liệt kê tất cả reCAPTCHA trên trang cùng phiên bản, khóa trang web, địa chỉ trang và hàm callback:

find-recaptcha-clients.js
// Paste into the browser DevTools console on a page with reCAPTCHA, then run findRecaptchaClients().
// Lists every reCAPTCHA on the page: version (V2/V3), sitekey, page URL and the callback function.
function findRecaptchaClients() {
if (typeof ___grecaptcha_cfg === 'undefined') return [];
return Object.entries(___grecaptcha_cfg.clients).map(([cid, client]) => {
const data = { id: cid, version: cid >= 10000 ? 'V3' : 'V2' };
const objects = Object.entries(client).filter(([, value]) => value && typeof value === 'object');
objects.forEach(([toplevelKey, toplevel]) => {
const found = Object.entries(toplevel).find(
([, value]) => value && typeof value === 'object' && 'sitekey' in value && 'size' in value,
);
if (toplevel instanceof HTMLElement && toplevel.tagName === 'DIV') data.pageurl = toplevel.baseURI;
if (found) {
const [sublevelKey, sublevel] = found;
data.sitekey = sublevel.sitekey;
const callbackKey = data.version === 'V2' ? 'callback' : 'promise-callback';
const callback = sublevel[callbackKey];
if (!callback) {
data.callback = null;
data.function = null;
} else {
data.function = callback;
const keys = [cid, toplevelKey, sublevelKey, callbackKey].map((key) => `['${key}']`).join('');
data.callback = `___grecaptcha_cfg.clients${keys}`;
}
}
});
return data;
});
}
findRecaptchaClients();

Kết quả ví dụ:

[
{
"id": "0",
"version": "V2",
"sitekey": "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-",
"function": "onSuccess",
"callback": "___grecaptcha_cfg.clients['0']['l']['l']['callback']",
"pageurl": "https://www.google.com/recaptcha/api2/demo"
}
]

Có thể dùng các trang demo chính thức của Google để đối chiếu: v2 thường https://www.google.com/recaptcha/api2/demo, v2 ẩn https://www.google.com/recaptcha/api2/demo?invisible=true.

Cả hai đều của Cloudflare nhưng không phải cùng một loại:

  • Turnstile là khung xác minh nhúng trong biểu mẫu của trang web. Sau khi xác minh xong sẽ hiện dấu tích, bản thân trang không chuyển hướng. Trang tải challenges.cloudflare.com/turnstile/v0/api.js. Dùng Turnstile.
  • Trang thử thách Cloudflare thay toàn bộ trang bằng trang kiểm tra của Cloudflare, hiện “Vui lòng chờ…”, “xx.com cần kiểm tra bảo mật kết nối của bạn trước khi tiếp tục”, bên trong có thể cũng có một khung xác minh; sau khi vượt qua sẽ tự động chuyển đến trang thật. Mã nguồn có __cf_chl_rt_tk hoặc cdn-cgi/challenge-platform. Dùng trang thử thách Cloudflare.

Nếu khi gửi yêu cầu bằng chương trình bạn nhận được 403 cùng “Just a moment…”, nhưng trình duyệt mở trang trực tiếp được, thì nhiều khả năng chỉ là dấu vân tay TLS bị chặn. Hãy dùng thư viện có thể giả lập dấu vân tay TLS của trình duyệt (ví dụ curl_cffi) là gửi yêu cầu được, không cần vượt trang thử thách.