Phân Tích Kỹ Thuật

GeeTest v4 so với v3: những thay đổi và cách giải CAPTCHA

Câu trả lời ngắn gọn trước: CaptchaAI giải GeeTest v3 với tỷ lệ giải thành công cao. CaptchaAI không giải GeeTest v4. Nếu trang bạn đang kiểm thử dùng v4, bài này giúp bạn nhận diện đúng phiên bản, hiểu v4 đã đổi gì so với v3 và CaptchaAI phù hợp ở đâu.

Nhiều đội QA và thu thập dữ liệu tại Việt Nam gặp GeeTest trên các cổng có nguồn gốc từ nền tảng Trung Quốc hoặc trang thương mại điện tử. Biết chắc đang là v3 hay v4 giúp bạn chọn đúng cách xử lý và tránh gửi nhầm tham số — lỗi phổ biến nhất khi chuyển giữa hai phiên bản.


v3 và v4 khác nhau ở đâu

GeeTest v4 không chỉ là bản làm mới giao diện. Nó thay đổi cách khởi tạo, cách sinh tham số thử thách và cách xác thực kết quả. Bảng dưới đây tóm tắt những khác biệt bạn sẽ chạm tới khi tích hợp.

Tính năng GeeTest v3 GeeTest v4
Khởi tạo gt + challenge từ máy chủ chỉ captcha_id
Tham số thử thách Lấy từ lệnh gọi API Sinh ở phía client
Loại thử thách Trượt, nhấp Trượt, nhấp, chọn biểu tượng, suy luận không gian
Xác thực Máy chủ trả về challenge Dùng lot_number + pass_token
Endpoint API api.geetest.com gcaptcha4.geetest.com
Điều chỉnh độ khó Cố định Chấm điểm rủi ro thích ứng

Ba điểm dễ vấp nhất khi chuyển từ v3 sang v4:

  • v3 lấy gt và challenge từ máy chủ trước khi hiển thị; v4 chỉ cần captcha_id và tự sinh phần còn lại ở phía client.
  • v4 dùng lot_number + pass_token để xác thực thay cho challenge — bộ token trả về hoàn toàn khác v3.
  • v4 chấm điểm rủi ro thích ứng, nên cùng một trang có thể tăng hoặc giảm độ khó tùy hành vi phiên truy cập.

Các loại thử thách trong v4

Trước khi bàn tới tích hợp, cần nắm bốn dạng thử thách mà v4 có thể hiển thị — nhiều hơn và đa dạng hơn v3.

Trượt (slide)

Thử thách kéo mảnh ghép cổ điển: người dùng kéo một mảnh vào đúng vị trí. Đây là dạng quen thuộc kế thừa từ v3.

Nhấp chọn đối tượng

Người dùng nhấp vào các đối tượng cụ thể (ví dụ "nhấp vào tất cả khuôn mặt"), dựa trên nhận dạng biểu tượng.

Suy luận không gian

Dạng mới trong v4 — người dùng sắp xếp các hình theo một mẫu không gian. Phức tạp hơn hẳn v3.

Ghép biểu tượng theo thứ tự

Người dùng ghép các biểu tượng hiển thị theo trình tự, khó tự động hóa thủ công hơn.

Dù trang hiển thị dạng nào trong số này thì đó vẫn là GeeTest v4, và CaptchaAI không giải được. CaptchaAI giải GeeTest v3.


Cách phát hiện GeeTest v4 trên trang

Trước khi gửi task, hãy xác định trang đang dùng v4 hay v3. v4 nhúng script gcaptcha4 (hoặc gt4.js) và dùng captcha_id thay cho cặp gt + challenge. Đoạn Selenium sau trích captcha_id cùng cờ is_v4 từ HTML đã render:

# extract_geetest_v4.py
import re
from selenium import webdriver

def extract_geetest_v4_params(url):
    """Extract GeeTest v4 captcha_id from a page."""
    driver = webdriver.Chrome()
    driver.get(url)

    page_source = driver.page_source

    # GeeTest v4 uses captcha_id instead of gt
    match = re.search(r'captcha_id["\']?\s*[:=]\s*["\']([a-f0-9]+)', page_source)
    captcha_id = match.group(1) if match else None

    # Check for v4-specific script
    is_v4 = "gcaptcha4" in page_source or "gt4.js" in page_source

    driver.quit()

    return {
        "captcha_id": captcha_id,
        "is_v4": is_v4,
        "pageurl": url,
    }

# Usage
params = extract_geetest_v4_params("https://staging.example.com/qa-login")
print(f"Captcha ID: {params['captcha_id']}")
print(f"Is v4: {params['is_v4']}")

Nếu is_v4 trả về True, trang dùng v4; ngược lại, xử lý theo luồng v3 quen thuộc.


CaptchaAI phù hợp ở đâu

CaptchaAI giải GeeTest v3. CaptchaAI không giải GeeTest v4. Phương thức geetest của CaptchaAI nhận các giá trị của v3 (gt, một challenge mới và pageurl) và trả về challenge, validate và seccode. Phương thức này không có tham số cho v4, vì vậy đừng gửi captcha_id của v4 vào tham số gt. Hãy chạy bước kiểm tra ở trên trước: nếu trang tải gcaptcha4.geetest.com hoặc gt4.js, trang đang dùng v4 và CaptchaAI không giải được. Nếu trang vẫn dùng v3, bài Cách giải quyết GeeTest v3 bằng API hướng dẫn toàn bộ luồng.


Cách xác thực của v4 khác ra sao

Trên trang dùng v3, khi vượt qua thử thách, trang nhận được ba giá trị geetest_challenge, geetest_validate và geetest_seccode, rồi backend của trang kiểm tra chúng với GeeTest. Trên trang dùng v4, captchaObj.getValidate() trả về bốn giá trị thay thế: lot_number, captcha_output, pass_token và gen_time. Backend của trang gửi chúng tới endpoint /validate của v4 trên gcaptcha4.geetest.com, kèm captcha_id của trang và một sign_token được ký bằng khóa riêng (private key) của trang (theo tài liệu GeeTest v4: web API và server API). Code đọc hoặc điền ba trường của v3 không có gì để xử lý trên trang dùng v4.


Khắc phục sự cố

Vấn đề Nguyên nhân Cách xử lý
Không tìm thấy gt / challenge trên một trang trước đây vẫn hoạt động Trang đã chuyển sang GeeTest v4, vốn không có challenge do máy chủ cấp Tìm gcaptcha4.geetest.com hoặc gt4.js trên trang; với GeeTest, CaptchaAI chỉ giải v3
ERROR_WRONG_CAPTCHA_ID từ CaptchaAI gt hoặc challenge không hợp lệ, chẳng hạn gửi captcha_id của v4 vào tham số gt Gửi gt của v3 trên trang và một challenge mới cho mỗi request
Không tìm thấy captcha_id Trang render bằng JavaScript Dùng Selenium trích xuất từ trang đã render

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

CaptchaAI có giải được GeeTest v4 không?

Không. CaptchaAI giải GeeTest v3 với tỷ lệ giải thành công cao. CaptchaAI không giải GeeTest v4, nên không có tỷ lệ thành công nào của v4 để đưa ra.

Tôi giải GeeTest v3 thế nào?

Dùng luồng bốn bước qua API: trích gt và một challenge mới từ trang, gửi task tới in.php với method=geetest, gt, challenge và pageurl, polling res.php, rồi chèn challenge, validate và seccode nhận được vào form.

Làm sao phân biệt GeeTest v3 và v4 trên một trang?

Tìm gcaptcha4.geetest.com hoặc gt4.js trong nguồn trang thì đó là v4. Nếu thấy api.geetest.com cùng tham số challenge thì đó là v3.

Giải GeeTest v3 với CaptchaAI tính chi phí thế nào?

CaptchaAI tính giá theo thread (luồng giải đồng thời), không tính theo từng lần giải. Gói nhỏ nhất là BASIC ($15/tháng, 5 thread) với số lần giải không giới hạn trong tháng, nên chi phí phụ thuộc vào số task đồng thời chứ không phải tổng số CAPTCHA.


Hướng dẫn liên quan


Giải GeeTest v3 — bắt đầu với CaptchaAI. CaptchaAI không giải GeeTest v4.

Os comentários estão desativados para este artigo.