Prosopo Procaptcha
và CapMonster Cloud

Giải captcha, cài đặt lên website và kiểm tra.

Giá của giải pháp Prosopo Procaptcha

CAPTCHA
Giá (USD)
$ 1.30
1000 token
Bạn nhận lại một website đã có captcha hoặc lớp bảo vệ khác nhưng không có quyền truy cập mã nguồn? Khi đó điều bạn cần biết là giải pháp nào đang chạy, cấu hình có đúng không và cách kiểm tra như thế nào.

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 Prosopo Procaptcha, 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 Prosopo Procaptcha để 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ý.

Procaptcha là gì
Procaptcha là gì
Procaptcha là hệ thống bảo vệ do công ty Prosopo phát triển, được thiết kế để ngăn chặn spam và các hành động tự động có thể gây hại cho website. Nó giúp phân biệt người dùng thực và bot, đảm bảo an toàn và ổn định cho trang web. Nếu hệ thống nghi ngờ tính xác thực của khách truy cập, nó sẽ đưa ra một nhiệm vụ kiểm tra (ví dụ: chọn các hình ảnh nhất định); người dùng thực vẫn có thể sử dụng website một cách thuận tiện và mượt mà.
Background
Ví dụ về Prosopo Procaptcha
Frictionless CAPTCHA
Frictionless CAPTCHA
Captcha vô hình. Tự động xác định xem khách truy cập là người dùng thực hay bot. Nếu người dùng hành xử tự nhiên (trình duyệt bình thường, không tự động), captcha sẽ được giải mà không nhận thấy. Nếu phát hiện dấu hiệu của bot, người dùng sẽ được hiển thị nhiệm vụ image bổ sung.
Proof of Work (PoW) CAPTCHA
Proof of Work (PoW) CAPTCHA
Captcha dựa trên tính toán, tức là yêu cầu thiết bị của bạn thực hiện một phép tính nhỏ trong nền. Mục đích chính là ngăn chặn bot hàng loạt và spam, vì các hệ thống tự động phải tiêu tốn thời gian và tài nguyên để hoàn thành nhiệm vụ. Đối với con người, thường gần như không nhận thấy.
Image CAPTCHA
Image CAPTCHA
Captcha hình ảnh cổ điển. Hiển thị các hình ảnh và yêu cầu chọn những hình phù hợp với điều kiện (ví dụ: “chọn tất cả các con ngựa”).

Cách giải Procaptcha qua CapMonster Cloud

Khi kiểm thử biểu mẫu chứa Prosopo Procaptcha, bạn thường phải xác minh xem captcha đã tích hợp đúng và hoạt động ổn định chưa.

Bạn có thể tự kiểm tra captcha trên site.

  • Mở trang có form và đảm bảo captcha hiển thị.
  • Thử gửi form mà không giải captcha — máy chủ phải trả lỗi.
  • Sau khi giải thành công, form phải gửi đi trơn tru.

Để giải tự động có thể dùng CapMonster Cloud, dịch vụ nhận tham số captcha, xử lý trên máy chủ của họ và trả về token sẵn dùng. Chèn token này vào form để vượt qua kiểm tra mà không cần tương tác người dùng.

Làm việc với CapMonster Cloud qua API thường gồm các bước:

Tạo nhiệm vụTạo nhiệm vụ
arrow
Gửi yêu cầu APIGửi yêu cầu API
arrow
Nhận kết quảNhận kết quả
arrow
Áp dụng token lên trangÁp dụng token lên trang
arrow
Nhận diện Procaptcha bằng thư viện sẵn có
Dịch vụ CapMonster Cloud cung cấp các thư viện sẵn có để làm việc tiện lợi với các ngôn ngữ Python, JavaScript (Node.js) và C#.
Python
JavaScript
C#
Giải captcha, chèn token và gửi form
Ví dụ Node.js cho toàn bộ chu trình giải captcha trên trang web của bạn. Các cách tiếp cận: sử dụng HTTP request để lấy HTML và các tham số captcha, gửi câu trả lời và xử lý kết quả; hoặc sử dụng công cụ tự động hóa (ví dụ Playwright) — mở trang, chờ captcha, gửi tham số (để test bạn có thể gửi dữ liệu đúng hoặc sai), lấy kết quả qua client CapMonster Cloud, chèn token vào form và xem kết quả.
python

async function sendTokenToSite(token) {
    // URL form hoặc endpoint để gửi token
    const formURL = "https://example..com/en/your-form-endpoint";

    // Ví dụ dữ liệu form
    const formData = {
        email: "example@example.com",
        password: "yourpassword",
        "procaptcha-response": token // token từ Procaptcha
    };

    try {
        const response = await fetch(formURL, {
            method: "POST",
            headers: {
                "Content-Type": "application/json", // или 'application/x-www-form-urlencoded' tùy thuộc vào trang web
            },
            body: JSON.stringify(formData),
        });

        const result = await response.text(); // hoặc response.json() nếu server trả JSON
        console.log("Server response:", result);
    } catch (err) {
        console.error("Error sending token:", err);
    }
}

// Hàm chính
async function solveAndSend() {
    const client = CapMonsterCloudClientFactory.Create(
        new ClientOptions({ clientKey: API_KEY })
    );

    const prosopoRequest = new ProsopoRequest({
        websiteURL: "https://example.com/en/",
        websiteKey: "5EZU3LG31uzq1Mwi8inwqxmfvFDpj7VzwDnZwj4Q3syyxBwV"
    });

    const balance = await client.getBalance();
    console.log("Balance:", balance);

    const result = await client.Solve(prosopoRequest);
    console.log("Captcha solution:", result);

    // Gửi token lên trang
    await sendTokenToSite(result.solution); // result.solution chứa token Procaptcha
}

solveAndSend().catch(console.error);

Cách kết nối Procaptcha với website của bạn
Để hiểu cách captcha hoạt động trên site của bạn, nắm logic kiểm tra, kết nối lại hoặc tái cấu hình, hãy tham khảo phần này. Nó hướng dẫn quá trình tích hợp bảo vệ, giúp bạn nhanh chóng nắm bắt chi tiết.

1. Lấy khóa (sitekey và secret key)

  • 1) Truy cập Prosopo Portal.
  • 2) Vào Site Management
  • 3) Nhấn Reveal — sẽ hiện hai khóa:
    • sitekey — công khai, dùng trên client.
    • secret key — riêng tư, chỉ dùng trên server.
Lưu ý: Mỗi widget có bộ khóa riêng. Không được dùng lại cho dự án khác.

2. Thêm domain của bạn

  • 1) Vào Account → Domains.
  • 2) Đảm bảo domain của bạn được liệt kê.
  • 3) Nếu test local — thêm localhost.
  • 4) Trước khi đưa vào prod — xóa localhost.

3. Kết nối script Procaptcha

Đặt tag vào <head>

markup
<script type="module" src="https://js.prosopo.io/js/procaptcha.bundle.js" async defer></script>>

4. Tùy chọn 1: Implicit rendering (tự động) — DỄ HƠN

Thêm container để captcha xuất hiện tự động:

markup
<div class="procaptcha" data-sitekey="your_site_key"></div>

Thông thường đặt trong form.

Ví dụ form đầy đủVí dụ form đầy đủ
arrow

Sau khi xác minh thành công, một tham số ẩn sẽ được thêm:

5. Tùy chọn 2: Explicit rendering (thủ công) — KIỂM SOÁT NHIỀU HƠN

Ví dụ HTMLVí dụ HTML
arrow
Ví dụ JavaScriptVí dụ JavaScript
arrow

6. Cấu hình loại captcha (tùy chọn)

Có thể chọn rõ ràng:

  • frictionless (mặc định)
  • pow
  • image

Ví dụ:

markup

<div class="procaptcha"
     data-sitekey="your_site_key"
     data-captcha-type="pow">
</div>

7. Bước bắt buộc: xác minh token trên server

Sau khi render captcha, server bắt buộc phải kiểm tra phản hồi. Kiểm tra thực hiện qua API:

javascript
POST
https://api.prosopo.io/siteverify

Nội dung request:

json
{
    "secret": "your_secret_key",
    "token": "PROCAPTCHA-RESPONSE"
}

8. Xác minh trên server bằng PHP

Ví dụ code:Ví dụ code:
arrow

Xác minh thành công nghĩa là gì?

Nếu server Procaptcha trả về:

json
{
    "verified": true
}

captcha vượt qua, bạn có thể thực hiện hành động bảo vệ (ví dụ đăng ký người dùng).

Background
Các lỗi thường gặp và cách xử lý
Bug Icon
Site Key không hợp lệ
Đang sử dụng site key sai hoặc không hợp lệ. Giải pháp: đảm bảo sử dụng đúng key từ tài khoản Procaptcha.
Bug Icon
URL nguồn không được phép
Domain cài widget không trùng với domain liên kết với site key. Giải pháp: kiểm tra và cập nhật danh sách domain trong cài đặt Procaptcha Portal.
Bug Icon
Không tìm thấy phiên
Phiên không tồn tại hoặc đã hết hạn. Giải pháp: chờ widget reload (~3 giây) hoặc refresh trang. Nếu lỗi lặp lại, xóa cache và cookie hoặc liên hệ support.
Bug Icon
Phản hồi success=false
Token đã hết hạn, dùng lại hoặc không vượt qua xác minh. Để chẩn đoán, bật log request và kiểm tra trường error trong phản hồi của Procaptcha.
Kiểm tra độ bền vững của lớp bảo vệ
Sau khi tích hợp, hãy đảm bảo hệ thống thực sự chặn được những hành động tự động.
Khuyến nghị về bảo mật và tối ưu
Chỉ lưu <span class="font-bold">Secret Key</span> trên máy chủ. Không bao giờ gửi nó đến client.
Ghi lại mã lỗi <span class="font-bold">(error-codes)</span> để hiểu lý do tại sao các xác minh cụ thể thất bại.
Thêm liên kết ở cuối form đến <span class="font-bold">Chính sách quyền riêng tư</span> và <span class="font-bold">Điều khoản sử dụng Procaptcha</span>, nếu triển khai của bạn yêu cầu.
Kết luận

Nếu bạn tiếp quản một trang web đã được cài sẵn captcha hoặc một hệ thống bảo vệ khác nhưng lại không có quyền truy cập vào mã nguồn thì cũng không có gì đáng lo! Việc xác định chính xác công nghệ nào đang được sử dụng khá đơn giản. Để kiểm tra xem mọi thứ có hoạt động đúng hay không, bạn có thể dùng dịch vụ nhận dạng CapMonster Cloud trong một môi trường thử nghiệm tách biệt nhằm đảm bảo cơ chế xử lý token và logic kiểm tra đang vận hành chính xác.

Với Prosopo Procaptcha, bạn chỉ cần nhận diện hệ thống, quan sát hành vi của nó và xác nhận rằng lớp bảo vệ hoạt động đúng cách. Trong bài viết này, chúng tôi đã chỉ ra cách nhận biết Prosopo Procaptcha và nơi tìm hướng dẫn tích hợp hoặc cấu hình lại, giúp bạn tự tin duy trì lớp bảo vệ và kiểm soát hoạt động của nó.

Conclusion
Liên kết hữu ích
DocIconTài liệu ProcaptchaDocIconProsopo PortalDocIconTài liệu CapMonster Cloud (làm việc với Procaptcha)

Câu hỏi thường gặp về Prosopo Procaptcha

Procaptcha sử dụng ba loại xác minh và chọn loại phù hợp nhất dựa trên mức độ rủi ro của phiên truy cập:

  • Frictionless CAPTCHA: Chạy nền và xác minh người truy cập một cách vô hình nếu tín hiệu trình duyệt và hành vi trông giống con người. Các phiên đáng ngờ có thể được chuyển sang thử thách hiển thị.
  • Proof of Work (PoW) CAPTCHA: Giao cho thiết bị của người truy cập một tác vụ tính toán nhỏ, khiến các yêu cầu tự động quy mô lớn tốn kém hơn trong khi gần như không đáng chú ý đối với người dùng thực.
  • Image CAPTCHA: Hiển thị thử thách trực quan, chẳng hạn chọn tất cả hình ảnh phù hợp với lời nhắc như «Chọn tất cả ngựa».

Bạn có thể chỉ định chế độ xác minh bằng thuộc tính data-captcha-type trên div widget. Đặt thành frictionless cho kiểm tra nền vô hình, pow cho câu đố Proof of Work, hoặc image cho thử thách chọn hình ảnh cổ điển.

Ví dụ:

markup
<div class="procaptcha"
     data-sitekey="your_site_key"
     data-captcha-type="pow">
</div>

Giá trị data-captcha-type phía client phải khớp chính xác với loại CAPTCHA được cấu hình trong cài đặt tài khoản Prosopo Portal của bạn.

Có, bạn có thể tích hợp giải pháp vào bất kỳ script Python nào bằng các yêu cầu HTTP phổ quát.

Yêu cầu ID tác vụ: Gửi yêu cầu POST đến endpoint createTask với khóa API, websiteURL và websiteKey của bạn.

json
{
  "clientKey": "YOUR_API_KEY",
  "task": {
    "type": "ProsopoTask",
    "websiteURL": "https://example.com",
    "websiteKey": "SITE_KEY"
  }
}

Truy vấn kết quả: Gửi taskId nhận được đến endpoint getTaskResult cho đến khi trạng thái là ready.

json
{
  "clientKey": "YOUR_API_KEY",
  "taskId": 123456789
}

Sử dụng token: Trích xuất chuỗi từ đối tượng solution và truyền làm giá trị procaptcha-response trong payload HTTP (requests, aiohttp) hoặc chèn vào DOM (Playwright, Puppeteer, Selenium).

Procaptcha hỗ trợ thuộc tính data-callback trên div widget cho render ngầm, hoặc thuộc tính callback trong đối tượng cấu hình cho render tường minh.

Hàm bạn chỉ định được gọi tự động khi captcha được giải, nhận chuỗi token làm đối số đầu tiên — lúc đó bạn có thể bật nút gửi, kích hoạt yêu cầu AJAX hoặc lưu token trong trạng thái component.

Sử dụng callback thường gọn gàng hơn việc polling trường procaptcha-response, vì nó loại bỏ race condition giữa việc widget giải xong và thời điểm gửi form.

Playwright, Puppeteer hoặc Selenium là các cách tiếp cận tương thích để tự động hóa việc chèn token Procaptcha đã giải. Luồng chung giống nhau:

  1. Điều hướng đến trang mục tiêu
  2. Chờ widget Procaptcha tải xong
  3. Yêu cầu token từ CapMonster Cloud qua API (hoặc SDK client)
  4. Chèn token trả về vào trang bằng phương thức thao tác DOM gốc của framework trước khi kích hoạt gửi form.