Giá của giải pháp CAPTCHA văn bản (ImageToText)
| CAPTCHA | Giá (USD) |
|---|---|
$ 0.30 1000 token |
Trong bài viết này, chúng tôi đã cố gắng trả lời tất cả những câu hỏi quan trọng. Bước đầu tiên để bắt đầu giải quyết vấn đề là xác định hệ thống bảo mật nào đang được sử dụng. Để làm điều đó, bạn có thể tham khảo danh sách các captcha và hệ thống chống bot phổ biến, trong đó có các ví dụ minh họa và những dấu hiệu chính giúp bạn nhanh chóng nhận biết mình đang làm việc với giải pháp nào.
Nếu bạn phát hiện trang web của mình đang sử dụng CAPTCHA văn bản (ImageToText), bước tiếp theo là tìm hiểu chi tiết hơn về các đặc tính và cách hoạt động của nó. Ngay trong bài viết này, bạn cũng có thể xem hướng dẫn tích hợp hệ thống CAPTCHA văn bản (ImageToText) để hiểu đầy đủ cách nó vận hành trên trang web của bạn. Điều đó giúp bạn không chỉ nắm rõ lớp bảo vệ hiện tại mà còn lập kế hoạch bảo trì một cách hợp lý.
Cách giải ImageToText CAPTCHA qua CapMonster Cloud
- Mở trang có biểu mẫu và đảm bảo CAPTCHA hiển thị.
- Thử gửi biểu mẫu mà không giải CAPTCHA — máy chủ phải trả lỗi.
- Sau khi giải CAPTCHA thành công, biểu mẫu sẽ được gửi mà không gặp lỗi.
Làm việc với CapMonster Cloud qua API thường gồm các bước:
type - ImageToTextTask
body - Nội dung file CAPTCHA, mã hóa base64. Đảm bảo giá trị được gửi trên một dòng duy nhất, không ngắt dòng;
capMonsterModule (tùy chọn) - Tên module, ví dụ “yandex”. Cách thay thế để truyền tên module và danh sách tất cả các module có sẵn có thể xem tại đây;
Bạn cũng có thể đặt các tham số tùy chọn khác:
recognizingThreshold - Ngưỡng nhận dạng CAPTCHA, giá trị từ 0 đến 100;
case - Có phân biệt chữ hoa/chữ thường hay không. Giá trị: true, false;
numeric - 1 — nếu CAPTCHA chỉ gồm số. Giá trị: 0, 1;
math - false — mặc định không xác định;
true — CAPTCHA yêu cầu phép toán (ví dụ 2 + 6 trả về 8).
Quan trọng: không dùng math: true cho module captcha_math.
https://api.capmonster.cloud/createTask{
"clientKey":"API_KEY",
"task": {
"type":"ImageToTextTask",
"body":"BASE64_BODY_HERE!"
}
}
{
"errorId":0,
"taskId":407533072
}https://api.capmonster.cloud/getTaskResult{
"clientKey":"API_KEY",
"taskId": 407533072
}
{
"errorId":0,
"status":"ready",
"solution": {
"text":"answer"
}
}
// npm install playwright @zennolab_com/capmonstercloud-client
// npx playwright install chromium
import { CapMonsterCloudClientFactory, ClientOptions, ImageToTextRequest, CapMonsterModules } from '@zennolab_com/capmonstercloud-client';
import { chromium } from 'playwright';
const API_KEY = "YOUR_API_KEY"; // Nhập API key CapMonster Cloud của bạn
async function solveImageToTextAndFillField() {
const cmcClient = CapMonsterCloudClientFactory.Create(
new ClientOptions({ clientKey: API_KEY })
);
// Kiểm tra số dư nếu cần
const balance = await cmcClient.getBalance();
console.log("Balance:", balance);
// 1. Khởi chạy Playwright và mở trang có biểu mẫu
const browser = await chromium.launch({ headless: false });
const context = await browser.newContext();
const page = await context.newPage();
await page.goto("https://example.com/form"); // 2. Lấy URL CAPTCHA từ trang (ví dụ qua selector <img>)
// 2. Lấy URL CAPTCHA từ trang (ví dụ qua selector <img>)
const captchaUrl = await page.getAttribute("#captcha-img", "src");
// 3. Tải hình ảnh và chuyển sang Base64
const response = await fetch(captchaUrl);
const imageBuffer = await response.arrayBuffer();
const imageBase64 = Buffer.from(imageBuffer).toString('base64');
// 4. Tạo yêu cầu giải ImageToText
const imageToTextRequest = new ImageToTextRequest({
body: imageBase64,
CapMonsterModule: CapMonsterModules.YandexWave, // hoặc module khác
Case: true,
numeric: 0,
recognizingThreshold: 65,
math: false
});
// 5. Nhận kết quả CAPTCHA
const result = await cmcClient.Solve(imageToTextRequest);
console.log("Captcha solution:", result.solution.text);
// 6. Chèn kết quả vào trường form và gửi
await page.fill("#captcha-input", result.solution.text); // Thay bằng selector của bạn
await page.click("#submit-button"); // Thay bằng selector nút của bạn
await page.waitForLoadState("networkidle");
console.log("Form đã gửi với CAPTCHA");
// 7. Đóng trình duyệt
await browser.close();
}
solveImageToTextAndFillField().catch(console.error);
Bước 1. Chọn phương pháp
Trước tiên xác định cách bạn sẽ sử dụng CAPTCHA:
Phương án 1 — nhà cung cấp bên ngoài
Phù hợp nếu cần triển khai nhanh và hỗ trợ tối thiểu.
Ưu điểm:
- Kết nối nhanh
- Bảo vệ bot sẵn có
- Không cần cập nhật thuật toán thủ công
Nhược điểm:
- Phụ thuộc dịch vụ bên ngoài
- Tùy chỉnh hạn chế
Phương án 2 — CAPTCHA văn bản tùy chỉnh
Phù hợp nếu muốn kiểm soát hoàn toàn và tích hợp riêng.
Ưu điểm:
- Kiểm soát toàn bộ logic và thiết kế
- Không phụ thuộc dịch vụ ngoài
- Có thể điều chỉnh theo kịch bản cụ thể
Nhược điểm:
- Cần tự xây dựng bảo vệ bot
- Cần bảo trì và nâng cấp theo thời gian
Bước 2. Thực hiện tạo CAPTCHA
Với nhà cung cấp
- Đăng ký dịch vụ
- Nhận key (site key / secret key)
- Chèn script vào trang biểu mẫu
Với CAPTCHA tùy chỉnh
- Tạo chuỗi ký tự ngẫu nhiên (số hoặc chữ cái)
- Vẽ lên hình ảnh (Canvas, SVG hoặc server-side)
- Thêm biến dạng: nhiễu, đường, xoay ký tự
Bước 3. Hiển thị CAPTCHA cho người dùng
- Chèn hình CAPTCHA gần biểu mẫu
- Thêm ô nhập văn bản
- Thêm nút làm mới CAPTCHA
Quan trọng: Mỗi lần tải phải tạo mã mới.
Bước 4. Gửi dữ liệu lên server
Khi gửi biểu mẫu, gửi:
- Văn bản người dùng nhập
- ID CAPTCHA hoặc token phiên
Với CAPTCHA tùy chỉnh, mã chỉ lưu trên server, không lưu trên client.
Bước 5. Kiểm tra CAPTCHA trên server
Nhà cung cấp
- Gửi token CAPTCHA đến server nhà cung cấp
- Nhận kết quả kiểm tra (thành công / lỗi)
CAPTCHA tùy chỉnh
- So sánh văn bản nhập với giá trị lưu trữ
- Xem xét thời gian sống CAPTCHA (1–2 phút)
Bước 6. Ra quyết định
- Nếu CAPTCHA đúng — thực hiện hành động (login, đăng ký, gửi form)
- Nếu sai — hiển thị lỗi và tạo CAPTCHA mới
Bước 7. Tăng cường bảo vệ (khuyến nghị)
Ngay cả với CAPTCHA văn bản, nên thêm:
- Giới hạn số lần thử
- Liên kết với IP, session hoặc cookie
- Token tạm thời (dùng 1 lần)
- Ghi nhận hoạt động đáng ngờ
Đảm bảo:
- CAPTCHA không tạo lại trước khi kiểm tra;
- Mã lưu riêng cho từng session hoặc token;
- Thời gian sống CAPTCHA chưa hết.
Các captcha được hỗ trợ
Nếu bạn nhận được trang web đã có CAPTCHA hoặc hệ thống bảo vệ khác mà không có mã — đừng lo! Xác định công nghệ đang dùng khá dễ dàng. Để kiểm tra hoạt động, có thể dùng CapMonster Cloud trong môi trường test riêng để đảm bảo xử lý token và logic xác minh hoạt động đúng.
Với CAPTCHA hình ảnh — chỉ cần xác định hệ thống, nghiên cứu hành vi và đảm bảo bảo vệ hoạt động chính xác. Bài viết này hướng dẫn nhận dạng CAPTCHA hình ảnh (ComplexImage) và cách tích hợp hoặc tái cấu hình để bảo vệ hoạt động an toàn và kiểm soát.