คู่มือ
การระบุประเภท CAPTCHA
หน้านี้แปลด้วยเครื่องจากเวอร์ชันภาษาจีน อาจมีข้อผิดพลาด โปรดยึดเวอร์ชันภาษาจีนเป็นหลัก
ขั้นแรกของการเลือกประเภทงานที่ถูกต้องคือการระบุ CAPTCHA ให้ได้ วิธีที่เชื่อถือได้ที่สุดคือเปิดเครื่องมือสำหรับนักพัฒนาของเบราว์เซอร์ (F12) แล้วดูในแผง Network ว่าหน้าเว็บโหลดสคริปต์ของ CAPTCHA ใด นอกจากนี้ยังดูจากหน้าตาได้ด้วย
ดูจากหน้าตา
หัวข้อที่มีชื่อว่า “ดูจากหน้าตา”ด้านล่างคือหน้าตาของ CAPTCHA แต่ละชนิดบนหน้าเว็บ (ภาพเคลื่อนไหวประกอบ ไม่ใช่ภาพหน้าจอ) คลิกการ์ดเพื่อไปยังหน้าของประเภทงานนั้น หากดูจากหน้าตาแล้วแยกไม่ออก ให้ใช้ตารางสรุปด้านล่างและแผง Network ยืนยัน
- ฉันไม่ใช่โปรแกรมอัตโนมัติreCAPTCHAความเป็นส่วนตัว - ข้อกำหนด
- อีเมลรหัสผ่าน••••••••ส่งได้รับการปกป้องโดย reCAPTCHAความเป็นส่วนตัว - ข้อกำหนด
- "objects": [1, 5, 8]เลือกรูปภาพทั้งหมดที่มีรถยนต์หากไม่มี ให้คลิก "ข้าม"012345678ยืนยัน
- ฉันเป็นมนุษย์hCaptchaความเป็นส่วนตัว - ข้อกำหนด
- "top_k": [0, 3, 4, 6, 7]โปรดคลิกทุกภาพที่มีจักรยาน012345678ข้ามยืนยัน
- อีเมล[email protected]กำลังตรวจสอบ...ยืนยันว่าคุณเป็นมนุษย์สำเร็จ!CLOUDFLAREความเป็นส่วนตัว • ข้อกำหนดเข้าสู่ระบบ
- Just a moment...Example Domain×example.com
example.com
กำลังตรวจสอบว่าคุณเป็นมนุษย์ อาจใช้เวลาสักครู่
กำลังตรวจสอบ...ยืนยันว่าคุณเป็นมนุษย์สำเร็จ!CLOUDFLAREความเป็นส่วนตัว • ข้อกำหนดexample.com ต้องตรวจสอบความปลอดภัยของการเชื่อมต่อของคุณก่อนดำเนินการต่อ
Use the arrows to change the number of objects until it matches the left image (1 of 1)
Submit3 ×Match This!←→- "top_k": [1, 4, 5, 6, 7]
มายืนยันกันว่าคุณเป็นมนุษย์
เลือกทั้งหมด หมวก
012345678ยืนยัน - "text": "LMResm"
ตารางสรุป
หัวข้อที่มีชื่อว่า “ตารางสรุป”| สิ่งที่คุณเห็น | คืออะไร | ใช้ประเภทงานใด |
|---|---|---|
| ช่องทำเครื่องหมาย “I’m not a robot” (ยืนยันว่าคุณเป็นมนุษย์) | reCAPTCHA v2 | reCAPTCHA v2 |
| ไม่มีช่องทำเครื่องหมาย โจทย์รูปภาพจะแสดงหลังกดส่งเท่านั้น และมีโลโก้ reCAPTCHA เล็กๆ ที่มุมขวาล่าง | reCAPTCHA v2 แบบ invisible (หรือ v3) | ดูหัวข้อ “เวอร์ชันของ reCAPTCHA” ด้านล่าง |
| ไม่มีการโต้ตอบใดๆ มีเพียงโลโก้ reCAPTCHA ที่มุมขวาล่าง | reCAPTCHA v3 | reCAPTCHA v3 |
| ช่องทำเครื่องหมาย “I am human” และโจทย์รูปภาพที่ระบุว่า hCaptcha | hCaptcha | hCaptcha |
| กล่องตรวจสอบของ Cloudflare ฝังอยู่ในฟอร์ม และหน้าไม่เปลี่ยนหลังทำเครื่องหมาย | Cloudflare Turnstile | Turnstile |
| ทั้งหน้าแสดงข้อความ “Just a moment…” / “กำลังตรวจสอบการเชื่อมต่อของคุณ” แล้วเปลี่ยนหน้าอัตโนมัติ | หน้าตรวจสอบของ Cloudflare | หน้าตรวจสอบของ Cloudflare |
| จิ๊กซอว์หรือโจทย์เลือกภาพของ Arkose Labs (เช่น “เลือกภาพที่หันขึ้นถูกทาง”) | FunCaptcha | การจดจำภาพ FunCaptcha |
| รูปภาพที่มีตัวอักษรและตัวเลขบิดเบี้ยว | CAPTCHA แบบตัวอักษร | การรู้จำตัวอักษรและตัวเลขจากภาพ |
เวอร์ชันของ reCAPTCHA
หัวข้อที่มีชื่อว่า “เวอร์ชันของ reCAPTCHA”ค้นหา api.js หรือ enterprise.js ในแผง Network:
| สคริปต์ที่โหลด | เวอร์ชัน |
|---|---|
recaptcha/api.js ที่ไม่มีพารามิเตอร์ render หรือ render=explicit |
v2 แบบปกติ |
เหมือนข้างต้น และ URL ของคำขอ anchor มี size=invisible |
v2 แบบ invisible ให้เพิ่ม "isInvisible": true ในงาน |
recaptcha/api.js?render=ไซต์คีย์ของเว็บไซต์ (render ไม่ใช่ explicit) |
v3 แบบปกติ |
recaptcha/enterprise.js ที่ไม่มีพารามิเตอร์ render หรือ render=explicit |
v2 Enterprise |
recaptcha/enterprise.js?render=ไซต์คีย์ของเว็บไซต์ |
v3 Enterprise |
ตัวอย่าง:
https://www.google.com/recaptcha/api.js?onload=onloadcallback&render=explicit → v2https://www.google.com/recaptcha/api.js?render=6LdyC2cUAAAAACGuDKpXeDorzUDWXmdqeg-xy696 → v3https://www.google.com/recaptcha/enterprise.js?render=explicit → v2 Enterpriseบางครั้ง v2 แบบ invisible จะผ่านได้เฉพาะเมื่อใช้ประเภทงานของ v3 ลองใช้ทั้งสองแบบ
คุณยังรันโค้ดด้านล่างในคอนโซล (Console) ได้ โค้ดนี้จะแสดงรายการ reCAPTCHA ทั้งหมดในหน้า พร้อมเวอร์ชัน ไซต์คีย์ URL ของหน้า และฟังก์ชัน callback:
// 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();ตัวอย่างผลลัพธ์:
[ { "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" }]ใช้หน้าเดโมอย่างเป็นทางการของ Google เปรียบเทียบได้: v2 แบบปกติ https://www.google.com/recaptcha/api2/demo และ v2 แบบ invisible https://www.google.com/recaptcha/api2/demo?invisible=true
Turnstile กับหน้าตรวจสอบของ Cloudflare
หัวข้อที่มีชื่อว่า “Turnstile กับหน้าตรวจสอบของ Cloudflare”ทั้งสองอย่างมาจาก Cloudflare แต่ไม่ใช่สิ่งเดียวกัน:
- Turnstile คือกล่องตรวจสอบที่ฝังอยู่ในฟอร์มของหน้าเว็บ เมื่อตรวจสอบเสร็จจะแสดงเครื่องหมายถูก และหน้าเว็บไม่เปลี่ยน หน้าเว็บจะโหลด
challenges.cloudflare.com/turnstile/v0/api.jsให้ใช้ Turnstile - หน้าตรวจสอบของ Cloudflare คือหน้าที่ถูกแทนที่ทั้งหน้าด้วยหน้าตรวจสอบของ Cloudflare ซึ่งแสดงข้อความ “Just a moment…” หรือ “xx.com ต้องตรวจสอบความปลอดภัยของการเชื่อมต่อของคุณก่อน” และอาจมีกล่องตรวจสอบอยู่ด้วย เมื่อผ่านแล้วจะเปลี่ยนไปยังหน้าจริงโดยอัตโนมัติ ในซอร์สโค้ดจะมี
__cf_chl_rt_tkหรือcdn-cgi/challenge-platformให้ใช้ หน้าตรวจสอบของ Cloudflare
หากส่งคำขอด้วยโปรแกรมแล้วได้ 403 พร้อมข้อความ “Just a moment…” แต่เปิดด้วยเบราว์เซอร์ได้ตามปกติ มักเป็นเพราะถูกบล็อกจาก TLS fingerprint เท่านั้น ให้เปลี่ยนไปใช้ไลบรารีที่เลียนแบบ TLS fingerprint ของเบราว์เซอร์ได้ (เช่น curl_cffi) ก็ส่งคำขอได้ โดยไม่ต้องแก้หน้าตรวจสอบ