Captcha GeeTest được giải thích: cách hoạt động và cách giải
GeeTest là nhà cung cấp captcha có các widget yêu cầu người truy cập thực hiện một tác vụ trực quan: kéo một mảnh ghép vào khoảng trống, nhấp một dãy biểu tượng theo thứ tự nhất định, hoặc làm theo một chuyển động trượt ngắn. Nó phổ biến trên các website thương mại điện tử, trang đăng nhập và backend ứng dụng ở nhiều khu vực. Đây cũng là một trong những họ captcha mà Scarnox chưa giải được. Hướng dẫn này giải thích GeeTest hoạt động thế nào, vì sao tự động hóa nó khó hơn một widget dựa trên token, những cách tiếp cận chung mà mọi người dùng, và hỗ trợ của Scarnox hiện nay ra sao.
GeeTest làm gì trên trang
Một captcha GeeTest thường tải theo ba bước:
- Trang bao gồm script của GeeTest và tạo một widget với một captcha ID. Trong nhiều tích hợp, ID đó được truyền dưới tham số tên
gt. - Widget yêu cầu máy chủ GeeTest một thử thách mới. Thử thách bao gồm một giá trị
challengevà các hình ảnh hoặc vị trí ô cần cho câu đố. - Khi người truy cập hoàn thành tác vụ, widget gửi kết quả về website. Backend của website sau đó xác minh kết quả với nhà cung cấp captcha trước khi chấp nhận form.
Bước thứ ba rất quan trọng. Một giá trị trông hợp lý là chưa đủ, vì máy chủ kiểm tra một kết quả gắn với một thử thách cụ thể và có thời hạn. Đó là lý do một giá trị sao chép từ phiên khác sẽ thất bại, và vì sao phát lại một kết quả cũ không có tác dụng.
Vì sao GeeTest khó hơn widget token
Với PopularCaptcha, trang cần một chuỗi token, và một yêu cầu trả về chuỗi đó. GeeTest khác ở ba điểm:
- Đầu ra là kết quả của một tác vụ, không phải một chuỗi. Website mong đợi nhiều giá trị thuộc về nhau, và tất cả phải đến từ cùng một thử thách.
- Thử thách mang tính trực quan và vị trí. Bộ giải phải tìm nơi một mảnh ghép khớp vào hoặc những biểu tượng nào khớp nhau, rồi tạo ra một chuyển động giống người thật.
- Kiểm tra xem xét cả hành vi lẫn đáp án. Tốc độ, đường đi và thời gian đều có thể bị kiểm tra. Một vị trí đúng được thực hiện theo kiểu máy móc vẫn có thể bị từ chối.
Vì vậy, giải GeeTest là một công việc nhiều bước: lấy thử thách, xác định vị trí mục tiêu trong ảnh, tạo chuyển động, gửi và đọc kết quả. Mỗi bước có thể thất bại, và thử thách hết hạn nếu bạn chờ quá lâu giữa các bước.
Các cách tiếp cận chung
Những người tự động hóa trang GeeTest thường dùng một trong ba cách. Không cách nào là lối tắt, và mỗi cách đều có chi phí:
- Điều khiển trình duyệt thật. Playwright hoặc Selenium tải trang và script của bạn di chuyển thanh trượt. Cách này hiệu quả nhất trên một website bạn sở hữu hoặc một môi trường thử nghiệm mà bạn được phép dùng. Trình duyệt là thật, nhưng chuyển động vẫn phải trông tự nhiên.
- So khớp hình ảnh. Code của bạn tải hình nền của câu đố, tìm khoảng trống bằng template matching (ví dụ với OpenCV), và tính khoảng cách kéo. Đây thường là phần đáng tin cậy nhất trong một thiết lập tự làm, và nó hỏng khi nhà cung cấp thay đổi bố cục hình ảnh.
- Người trong vòng lặp hoặc dịch vụ giải. Một người hoặc một dịch vụ được quản lý giải thử thách và trả về kết quả. Scarnox dự định cung cấp tùy chọn này cho GeeTest, nhưng nó chưa chạy.
Dù chọn cách nào, hãy giữ phạm vi trung thực: tự động hóa các luồng bạn sở hữu, các môi trường thử nghiệm bạn được phép dùng, hoặc dữ liệu công khai mà bạn được phép thu thập.
Tìm captcha ID
Bạn không cần code để bắt đầu. Mở DevTools, tải lại trang, và tìm geetest hoặc gt trong tab Network. Yêu cầu đầu tiên tải widget thường cho thấy captcha ID. Một script nhỏ có thể ghi lại nó, điều này hữu ích khi bạn muốn biết khi nào một trang thay đổi widget:
import re
import requests
html = requests.get("https://example.com/login", timeout=30).text
match = re.search(r"gt['\"]?\s*[:=]\s*['\"]([a-f0-9]{32})['\"]", html)
print("captcha id:", match.group(1) if match else "not found")
Mẫu trên tìm một giá trị hexa 32 ký tự nằm cạnh gt. Nhà cung cấp thay đổi markup của họ, nên hãy xem nó như điểm khởi đầu và kiểm tra kết quả với trang bạn đang kiểm thử.
Hỗ trợ của Scarnox hiện nay
Hãy rõ ràng về điều này khi bạn lên kế hoạch cho một dự án:
- Đang chạy: PopularCaptcha, proxyless, và với proxy riêng của bạn.
- Sắp ra mắt: GeeTest, reCAPTCHA v2 và v3, Cloudflare Turnstile, AWS WAF và Arkose. Đừng xây dựng luồng production phụ thuộc vào việc giải GeeTest cho đến khi nó được liệt kê là đang chạy.
Nếu dự án của bạn cần GeeTest ngay bây giờ, con đường thực tế là tự xây dựng các bước trình duyệt và hình ảnh cho những trang bạn được phép kiểm thử, và giữ code sẵn sàng để chuyển sang API khi hỗ trợ ra mắt. Trong lúc đó, bạn có thể tạo tài khoản và bắt đầu với tín dụng dùng thử miễn phí, không cần thẻ. Điều đó cho bạn một luồng PopularCaptcha đang hoạt động để thử nghiệm và một chỗ để gắn GeeTest sau này. Về bảng giá hiện tại, xem bảng giá hiện tại.
Các mục đích hợp pháp
- Kiểm thử luồng đăng nhập hoặc thanh toán của chính bạn, nơi captcha chặn các kiểm thử hồi quy tự động.
- Kiểm tra trợ năng để xác nhận một người truy cập không thể giải câu đố trực quan vẫn có lối khác để hoàn tất form.
- Giám sát một website mà bạn có quyền theo dõi, ví dụ kiểm tra widget vẫn tải sau một lần triển khai.
Đừng dùng tự động hóa captcha để tạo tài khoản giả, tấn công form đăng nhập hoặc chiếm hàng tồn kho có số lượng giới hạn. Những cách dùng đó vi phạm quy định của hầu hết website và không phải thứ Scarnox hỗ trợ.