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 reCAPTCHA v2 Enterprise, 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 reCAPTCHA v2 Enterprise để 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ý.
Khi kiểm thử biểu mẫu chứa reCAPTCHA v2 Enterprise, 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.
Để 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:
Yêu cầu giải cần có:
type - RecaptchaV2EnterpriseTask;
websiteURL - URL trang chứa captcha;
websiteKey - sitekey hiển thị trên trang;
enterprisePayload - truyền nếu widget reCAPTCHA Enterprise gửi thêm trường s trong đối tượng chuyển tới grecaptcha.enterprise.render cùng với sitekey;
pageAction - giá trị action mà widget gửi cho Google (mặc định verify).
https://api.capmonster.cloud/createTask{
"clientKey": "API_KEY",
"task": {
"type": "RecaptchaV2EnterpriseTask",
"websiteURL": "https://mydomain.com/page-with-recaptcha-enterprise",
"websiteKey": "6Lcg7CMUAAAAANphynKgn9YAgA4tQ2KI_iqRyTwd",
"pageAction": "verify",
"enterprisePayload": {
"s": "SOME_ADDITIONAL_TOKEN"
}
}
}
{
"errorId":0,
"taskId":407533072
}https://api.capmonster.cloud/getTaskResult{
"clientKey":"API_KEY",
"taskId": 407533072
}
{
"errorId": 0,
"status": "ready",
"solution": {
"gRecaptchaResponse": "03AFcWeA66ZARdA5te7acD9vSwWE2hEQ2-B2aqFxm455iMA-g-Jis..."
}
}
import { chromium } from 'playwright';
import { CapMonsterCloudClientFactory, ClientOptions, RecaptchaV2EnterpriseRequest } from '@zennolab_com/capmonstercloud-client';
(async () => {
const browser = await chromium.launch({ headless: false });
const context = await browser.newContext();
const page = await context.newPage();
// 2. Mở trang có captcha
await page.goto('https://example.com');
// 3. Tạo client CapMonster Cloud
const cmcClient = CapMonsterCloudClientFactory.Create(
new ClientOptions({ clientKey: '<your_capmonster_cloud_api_key>' })
);
// 4. Cấu hình request giải captcha
const recaptchaRequest = new RecaptchaV2EnterpriseRequest({
websiteURL: page.url(),
websiteKey: '6Lf76sUnAAAAAIKLuWNyegRsFUfmI-3Lex3xT5N'
// enterprisePayload: { s: 'SOME_ADDITIONAL_TOKEN' } // Tham số enterprise tùy chọn
});
// 5. Giải captcha thông qua CapMonster
const solution = await cmcClient.Solve(recaptchaRequest);
const token = solution.solution.gRecaptchaResponse;
console.log('Mã thông báo captcha:', token);
// 6. Chèn token vào trường ẩn
await page.evaluate((t) => {
const el = document.getElementById('g-recaptcha-response');
if (el) el.value = t;
}, token);
// 7. (Tùy chọn) Gửi form — đổi selector theo nhu cầu
await page.click('button[data-action="submit"]');
await page.waitForTimeout(5000);
await browser.close();
})();Vì reCAPTCHA Enterprise chạy trên Google Cloud nên trước tiên bạn phải tạo một dự án trong console:
1. Truy cập Google Cloud Console.
2. Ở menu trên cùng, chọn một dự án hiện có hoặc nhấp vào New project.
3. Nhập tên dự án, chỉ định tổ chức của bạn và xác nhận tạo mới.

4. Mở trang API: reCAPTCHA Enterprise API và nhấp Enable.
5. Trong console, vào trang Create key và nhấp Create Key.

6. Cấu hình các thiết lập cơ bản:
Tiếp theo, mở Additional Settings, bật Will you use challenges? và kích hoạt Checkbox Challenge.

7. Nhấp Create. Bạn sẽ nhận được một khóa cần thêm vào trang web để kích hoạt bảo vệ.

8. Thêm script vào trang của bạn.
<html>
<head>
<title>reCAPTCHA demo: Simple page</title>
<script src="https://www.google.com/recaptcha/enterprise.js" async defer></script>
</head>
<body>
<form action="" method="POST">
<div class="g-recaptcha" data-sitekey="YOUR_SITEKEY" data-action="LOGIN"></div>
<br/>
<input type="submit" value="Submit">
</form>
</body>
</html>9. Xác thực phản hồi (response) ở phía máy chủ.
Token (g-recaptcha-response) được gửi tới backend.
Token chỉ có hiệu lực trong 2 phút, vì vậy hãy kiểm tra ngay khi nhận được! Để giao tiếp an toàn với API, chúng tôi khuyến nghị sử dụng các thư viện Google Cloud chính thức:
<?php
require 'vendor/autoload.php';
// Cài đặt các thư viện Google Cloud thông qua Composer
use Google/Cloud/RecaptchaEnterprise/V1/RecaptchaEnterpriseServiceClient;
use Google/Cloud/RecaptchaEnterprise/V1/Event;
use Google/Cloud/RecaptchaEnterprise/V1/Assessment;
use Google/Cloud/RecaptchaEnterprise/V1/CreateAssessmentRequest;
use Google/Cloud/RecaptchaEnterprise/V1/TokenProperties/InvalidReason;
/**
* Xác thực token reCAPTCHA Enterprise và lấy điểm rủi ro (risk score).
*
* @param string $recaptchaKey Khóa reCAPTCHA cho trang web/ứng dụng của bạn
* @param string $token Token nhận được từ client
* @param string $projectId ID dự án Google Cloud
* @param string $action Tên hành động (action) gắn với token
*/
function create_assessment(string $recaptchaKey, string $token, string $projectId, string $action): void {
$client = new RecaptchaEnterpriseServiceClient();
$projectName = $client->projectName($projectId);
// Tạo sự kiện đánh giá (assessment event)
$event = (new Event())->setSiteKey($recaptchaKey)->setToken($token);
$assessment = (new Assessment())->setEvent($event);
$request = (new CreateAssessmentRequest())->setParent($projectName)->setAssessment($assessment);
try {
$response = $client->createAssessment($request);
if (!$response->getTokenProperties()->getValid()) {
echo 'Token không hợp lệ: ' . InvalidReason::name($response->getTokenProperties()->getInvalidReason());
return;
}
if ($response->getTokenProperties()->getAction() === $action) {
echo 'Điểm rủi ro: ' . $response->getRiskAnalysis()->getScore();
} else {
echo 'Action trong thẻ reCAPTCHA không khớp với giá trị mong đợi';
}
} catch (Exception $e) {
echo 'Lỗi khi kiểm tra reCAPTCHA: ' . $e->getMessage();
}
}
// Gọi hàm với các biến tương ứng
create_assessment(
'YOUR_SITE_KEY',
'YOUR_USER_RESPONSE_TOKEN',
'YOUR_PROJECT_ID',
'YOUR_RECAPTCHA_ACTION'
);
?>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 reCAPTCHA v2 Enterprise, 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 reCAPTCHA v2 Enterprise 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ó.