En este artículo hemos intentado responder a todas las preguntas clave. Para empezar a resolver la tarea, primero hay que determinar qué sistema de protección se está utilizando. Para ello, puedes consultar la lista de captchas y sistemas de protección antibot más populares, donde se muestran ejemplos visuales y señales clave que te ayudarán a identificar rápidamente con qué estás tratando.
Si descubres que tu sitio web utiliza reCAPTCHA v3, el siguiente paso será analizar con más detalle sus propiedades y su funcionamiento. En este mismo artículo también puedes consultar la guía de integración de reCAPTCHA v3 para comprender por completo cómo funciona en tu sitio. Esto te permitirá no solo entender la protección actual, sino también planificar correctamente su mantenimiento.
Al probar formularios que incluyen reCAPTCHA v3, normalmente debes verificar que la captcha funcione y esté integrada correctamente.
Puedes comprobar manualmente la captcha incrustada en tu sitio.
Para la resolución automática puedes usar herramientas como CapMonster Cloud, que reciben los parámetros de la captcha, los procesan en sus servidores y devuelven un token listo para usar. Inserta ese token en el formulario para pasar la verificación sin interacción del usuario.
Trabajar con CapMonster Cloud mediante la API suele implicar los siguientes pasos:
En la solicitud para resolver reCAPTCHA v3 debe indicar los siguientes parámetros:
type - RecaptchaV3TaskProxyless;
websiteURL - la dirección de la página en la que se resuelve el captcha;
websiteKey - el identificador de clave (sitekey) que se indica en la página de su sitio con el captcha;
minScore - puede tener un valor de 0.1 a 0.9;
pageAction - el valor del parámetro action que envía el widget de ReCaptcha en Google. Valor predeterminado: verify.
https://api.capmonster.cloud/createTask{
"clientKey": "API_KEY",
"task": {
"type": "RecaptchaV3TaskProxyless",
"websiteURL": "https://lessons.zennolab.com/captchas/recaptcha/v3.php?level=beta",
"websiteKey": "6Le0xVgUAAAAAIt20XEB4rVhYOODgTl00d8juDob",
"minScore": 0.7,
"pageAction": "myverify"
}
}
{
"errorId":0,
"taskId":407533072
}
https://api.capmonster.cloud/getTaskResult{
"clientKey":"API_KEY",
"taskId": 407533072
}
{
"errorId": 0,
"status": "ready",
"solution": {
"gRecaptchaResponse": "3AHJ_VuvYIBNBW5yyv0zRYJ75VkOKv…hKj9_xGBJKnQimF72rfoq3Iy-DyGHMwLAo6a3"
}
}
const { chromium } = require('playwright');
const {
CapMonsterCloudClientFactory,
ClientOptions,
RecaptchaV3ProxylessRequest
} = require('@zennolab_com/capmonstercloud-client');
(async () => {
const TARGET_URL = 'https://lessons.zennolab.com/captchas/recaptcha/v3.php?level=beta'; // URL de tu página con el captcha
const SITE_KEY = '6Le0xVgUAAAAAIt20XEB4rVhYOODgTl00d8juDob';
const API_KEY = 'your_capmonster_cloud_api_key'; // Indica tu clave de API de CapMonster Cloud
// Creación del cliente de CapMonster
const cmcClient = CapMonsterCloudClientFactory.Create(new ClientOptions({ clientKey: API_KEY }));
// Abrir el navegador
const browser = await chromium.launch({ headless: false });
const page = await browser.newPage();
await page.goto(TARGET_URL, { waitUntil: 'domcontentloaded' });
// Configuración de la tarea de reCAPTCHA v3
const recaptchaRequest = new RecaptchaV3ProxylessRequest({
websiteURL: TARGET_URL,
websiteKey: SITE_KEY,
minScore: 0.6,
pageAction: 'myverify', // coincidencia con la action en la página
});
// Resolver el captcha
const solution = await cmcClient.Solve(recaptchaRequest);
const token = solution.solution?.gRecaptchaResponse;
if (!token) {
console.error('Токен пустой, проверьте sitekey и URL');
await browser.close();
return;
}
console.log('Token obtenido:', token);
// Insertar el token en un campo oculto y simular el clic en el botón
// Sustituye por los selectores necesarios
await page.evaluate((t) => {
const input = document.querySelector('#v3_token');
if (input) input.value = t;
const form = document.querySelector('#v3_form');
if (form) form.submit();
}, token);
console.log('El token se ha insertado y el formulario se ha enviado');
await page.waitForTimeout(5000);
await browser.close();
})();1. Ve a la página del panel de administración de reCAPTCHA.
2. Registra un nuevo sitio y elige como tipo de captcha — reCAPTCHA v3

3. Obtén las dos claves:

Puedes abrir la configuración donde, por ejemplo, puedes indicar dominios adicionales en los que usar reCAPTCHA o configurar avisos sobre problemas en el sitio o incrementos de tráfico sospechoso.
4. Ejemplos de código para la parte cliente
La forma más sencilla de usar reCAPTCHA v3 es incluir la API de JavaScript y añadir atributos al botón.
Inclusión de la API:
<script src="https://www.google.com/recaptcha/api.js"></script>Función de callback para el formulario:
<script>
function onSubmit(token) {
document.getElementById("form").submit();
}
</script>
Botón con atributos de reCAPTCHA:
<button class="g-recaptcha"
data-sitekey="reCAPTCHA_sitekey"
data-callback='onSubmit'
data-action='submit'>Submit</button>
Para un control completo, utiliza grecaptcha.execute con el parámetro render:
Inclusión de la API con la clave:
<script src="https://www.google.com/recaptcha/api.js?render=reCAPTCHA_site_key"></script>Llamada mediante código:
<script>
function onClick(e) {
e.preventDefault();
grecaptcha.ready(function() {
grecaptcha.execute('reCAPTCHA_sitekey', {action: 'submit'}).then(function(token) {
// Envía el token al servidor para su verificación
});
});
}
</script>
El token debe enviarse inmediatamente al servidor para su verificación.
Notas importantes:
5. Ahora realiza la verificación de la respuesta en el servidor
<?php
// Tu clave secreta (Secret Key) de reCAPTCHA v3
$secret = 'YOUR_SECRET_KEY';
// Obtener el token desde el formulario
$token = $_POST['recaptcha-token'] ?? '';
// Enviar una solicitud a Google para verificar el token
$response = file_get_contents(
"https://www.google.com/recaptcha/api/siteverify?secret={$secret}&response={$token}"
);
$result = json_decode($response, true);
// Comprobar si la verificación ha tenido éxito y el score de confianza
if ($result['success'] && $result['score'] >= 0.5 && $result['action'] === 'submit') {
echo "Verificación correcta";
} else {
http_response_code(403);
echo "Verificación fallida";
}
?>
Notas:
<input type="hidden" name="recaptcha-token" id="recaptcha-token">Si has heredado un sitio web que ya tiene un captcha u otro sistema de protección instalado y no tienes acceso al código, no pasa nada. Identificar qué tecnología se está utilizando es bastante sencillo. Para comprobar que todo funciona correctamente, puedes usar el servicio de reconocimiento CapMonster Cloud en un entorno de pruebas aislado, para asegurarte de que el mecanismo de procesamiento de tokens y la lógica de verificación funcionan correctamente.
En el caso de reCAPTCHA v3, basta con detectar el sistema, analizar su comportamiento y confirmar que la protección funciona correctamente. En el artículo hemos mostrado cómo identificar reCAPTCHA v3 y dónde encontrar las instrucciones para su integración o reconfiguración, de modo que puedas mantener la protección con confianza y controlar su funcionamiento.