在本文中,我们尽量回答了所有关键问题。要开始解决问题,第一步是确定当前使用的是哪种防护系统。为此,您可以查看常见验证码与反机器人防护系统列表,其中提供了可视化示例和关键特征,帮助您快速判断自己正在使用哪一种方案。
如果您发现自己的网站使用的是 reCAPTCHA V2,下一步就是更深入地了解它的特性和具体工作方式。在本文中,您还可以查看 reCAPTCHA V2 的接入说明,以便彻底弄清它在您的网站上是如何运行的。这样一来,您不仅能更好地理解当前的防护机制,还可以更合理地规划后续的维护和支持。
测试包含 reCAPTCHA V2 的表单时,常常需要确认 captcha 是否集成正确并工作正常。
你可以手动验证站点上的 captcha。
若想自动解题,可以使用 CapMonster Cloud 等服务,它会接收验证码参数、在服务器中解析并返回可直接使用的 token。把 token 注入表单即可无需人工操作通过验证。
通过 CapMonster Cloud API 工作的一般流程:
解决 reCAPTCHA v2 的请求必须包含以下参数:
type - RecaptchaV2Task;
websiteURL - 验证码所在页面地址;
websiteKey - 页面上提供的 sitekey。
https://api.capmonster.cloud/createTask{
"clientKey": "API_KEY",
"task": {
"type": "RecaptchaV2Task",
"websiteURL": "https://lessons.zennolab.com/captchas/recaptcha/v2_simple.php?level=high",
"websiteKey": "6Lcg7CMUAAAAANphynKgn9YAgA4tQ2KI_iqRyTwd"
}
}
{
"errorId":0,
"taskId":407533072
}https://api.capmonster.cloud/getTaskResult{
"clientKey":"API_KEY",
"taskId": 407533072
}
{
"errorId": 0,
"status": "ready",
"solution": {
"gRecaptchaResponse": "03AFcWeA66ZARdA5te7acD9vSwWE2hEQ2-B2aqFxm455iMA-g-Jis…"
}
}
// npm install playwright @zennolab_com/capmonstercloud-client
// npx playwright install chromium
const { chromium } = require('playwright');
const { CapMonsterCloudClientFactory, ClientOptions, RecaptchaV2Request } = require('@zennolab_com/capmonstercloud-client');
(async () => {
const browser = await chromium.launch({ headless: false });
const page = await browser.newPage();
const TARGET_URL = 'https://lessons.zennolab.com/captchas/recaptcha/v2_simple.php?level=high';
const WEBSITE_KEY = '6Lcg7CMUAAAAANphynKgn9YAgA4tQ2KI_iqRyTwd';
const CMC_API_KEY = 'your_capmonster_cloud_api_key';
const cmc = CapMonsterCloudClientFactory.Create(new ClientOptions({ clientKey: CMC_API_KEY }));
await page.goto(TARGET_URL, { waitUntil: 'domcontentloaded' });
// 执行验证码求解
const solution = await cmc.Solve(new RecaptchaV2Request({ websiteURL: TARGET_URL, websiteKey: WEBSITE_KEY }));
const token = solution.solution.gRecaptchaResponse;
// 将 token 写入并提交表单(替换为所需选择器)
await page.evaluate((t) => {
const ta = document.querySelector('textarea#g-recaptcha-response');
if (ta) ta.value = t;
document.querySelector('form.formular')?.submit();
}, token);
console.log('验证码已解决,表单提交成功!');
})();1. 前往 reCAPTCHA 管理控制台页面。
2. 注册一个新站点。
选择验证码类型——reCAPTCHA v2(勾选 + 任务或不可见版本)。

3. 获取两组密钥:

在设置中可指定允许使用 reCAPTCHA 的域名或选择安全级别(从基础到最高)。
4. 客户端代码示例。 带 reCAPTCHA v2 的 HTML 表单(可直接粘贴到页面 body 中):
勾选式 widget:
<html>
<head>
<title>reCAPTCHA demo</title>
<script src="https://www.google.com/recaptcha/api.js" async defer></script>
</head>
<body>
<form action="submit" method="POST">
<div class="g-recaptcha" data-sitekey="your_site_key"></div>
<br/>
<input type="submit" value="Submit">
</form>
</body>
</html>此代码加载 Google reCAPTCHA 库并创建使用 POST 提交的表单。<div class="g-recaptcha" data-sitekey="your_site_key"></div> 会显示带公钥的 reCAPTCHA v2 控件。点击 “Submit” 时,表单会携带 g-recaptcha-response token 发送到服务器。
不可见 reCAPTCHA v2:
<html>
<head>
<title>reCAPTCHA demo</title>
<script src="https://www.google.com/recaptcha/api.js" async defer></script>
<script>
function onSubmit(token) {
document.getElementById("demo-form").submit();
}
</script>
</head>
<body>
<form id="demo-form" action="?" method="POST">
<button class="g-recaptcha" data-sitekey="your_site_key" data-callback="onSubmit">Submit</button>
<br/>
</form>
</body>
</html>按钮 <button class="g-recaptcha" data-sitekey="your_site_key" data-callback="onSubmit">Submit</button> 会自动执行不可见验证码、生成 token 并调用 onSubmit。
函数 onSubmit(token) 接收 g-recaptcha-response token 并将表单发往服务器验证。
与勾选式控件不同,用户看不到验证码,验证过程在后台完成。
5. 在服务器端校验结果。
检查请求方法并读取数据
?php
if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
http_response_code(405);
exit('请求方法不允许');
}
// 获取 reCAPTCHA token
$token = $_POST['g-recaptcha-response'] ?? '';
$secret = 'YOUR_SECRET_KEY';
if (!$token) {
exit('验证码未通过');
}通过 Google 验证 captcha
$response = file_get_contents(
"https://www.google.com/recaptcha/api/siteverify?secret=$secret&response=$token"
);
$result = json_decode($response, true);
if (!empty($result['success'])) {
echo "<h3>表单发送成功!</h3>";
} else {
echo "验证过程中出现错误。";
}
?>如果你接手了一个已经集成了验证码或其他防护系统的网站,但又无法访问其代码,也不用担心!要判断实际使用了哪种技术其实并不难。为了核实其是否正常工作,你可以在隔离的测试环境中使用CapMonster Cloud识别服务,确保令牌处理机制和校验逻辑都运行正常。
对于reCAPTCHA V2,只需识别出所用的系统,观察其行为,并确认防护是否正常工作即可。本文演示了如何识别 reCAPTCHA V2,以及到哪里查找其接入或重新配置的说明文档,从而帮助你自信地维护防护方案并掌控其运行情况。