Scarnox · Blog

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:

  1. 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.
  2. 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ị challenge và các hình ảnh hoặc vị trí ô cần cho câu đố.
  3. 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:

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í:

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:

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

Đừ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ợ.

Các bước tiếp theo