MTCaptcha
y CapMonster Cloud

Solución de captcha, instalación en el sitio y pruebas.

Precios de la solución MTCaptcha

CAPTCHA
Precio (USD)
$ 1.50
1000 tokens
¿Heredaste un sitio con una captcha u otra capa de protección pero sin acceso al código fuente? Entonces es normal preguntarse: ¿qué solución está instalada, está configurada correctamente y cómo se puede probar?

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 MTCaptcha, 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 MTCaptcha 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.

Qué es MTCaptcha
Qué es MTCaptcha
MTCaptcha es un sistema de protección de sitios web contra acciones automatizadas que utiliza verificación inteligente y captcha. Primero, el servicio analiza el tráfico en segundo plano. Si el comportamiento del visitante parece sospechoso, el sistema muestra automáticamente un captcha de texto para verificación adicional.

Cómo resolver MTCaptcha a través de CapMonster Cloud

Al probar formularios que incluyen MTCaptcha, normalmente debes verificar que la captcha funcione y esté integrada correctamente.

Puedes comprobar manualmente la captcha incrustada en tu sitio.

  • Abre la página del formulario y verifica que la captcha se renderice.
  • Intenta enviar el formulario sin resolverla: el servidor debe devolver un error.
  • Tras una solución correcta, el formulario debe enviarse sin inconvenientes.

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:

Creación de la tareaCreación de la tarea
arrow
Enviar una solicitud APIEnviar una solicitud API
arrow
Recepción del resultadoRecepción del resultado
arrow
Colocar el token en la páginaColocar el token en la página
arrow
Reconocimiento de MTCaptcha usando bibliotecas listas para usar
El servicio CapMonster Cloud proporciona bibliotecas listas para trabajar cómodamente en Python, JavaScript (Node.js) y C#.
Python
JavaScript
C#
Resolver, insertar token y enviar formulario
Ejemplo en Node.js para el ciclo completo de reconocimiento de captcha en su página web. Enfoques posibles: usar solicitudes HTTP para obtener HTML y parámetros del captcha, enviar la respuesta y procesar el resultado; o usar herramientas de automatización (como Playwright) — abrir la página, esperar el captcha, enviar parámetros (para pruebas se pueden enviar datos correctos o incorrectos), obtener el resultado a través del cliente de CapMonster Cloud, insertar el token en el formulario y ver el resultado.

  // npm install playwright @zennolab_com/capmonstercloud-client
import { chromium } from 'playwright';
import { CapMonsterCloudClientFactory, ClientOptions, MTCaptchaRequest } from '@zennolab_com/capmonstercloud-client';

const API_KEY = 'YOUR_API_KEY';
const TARGET_URL = 'https://example.com';

async function main() {
  const browser = await chromium.launch({ headless: false });
  const context = await browser.newContext();
  const page = await context.newPage();

 
  let websiteKey = null;
  page.on('request', request => {
    const url = request.url();
    if (url.startsWith('https://service.mtcaptcha.com/mtcv1/api/getchallenge.json')) {
      const params = new URL(url).searchParams;
      const sk = params.get('sk');
      if (sk) {
        websiteKey = sk;
        console.log('Extracted websiteKey (sk):', websiteKey);
      }
    }
  });

  
  await page.goto(TARGET_URL, { waitUntil: 'networkidle' });

  if (!websiteKey) {
    console.error('Failed to extract websiteKey (sk) from the page');
    await browser.close();
    return;
  }

  
  const client = CapMonsterCloudClientFactory.Create(
    new ClientOptions({ clientKey: API_KEY })
  );

  
  const mtcaptchaRequest = new MTCaptchaRequest({
    websiteURL: TARGET_URL,
    websiteKey: websiteKey,
    isInvisible: false,
    pageAction: 'login'
  });

  // Resolución de captcha
  const result = await client.Solve(mtcaptchaRequest);

  
  const verifiedToken = typeof result?.solution?.value === 'string'
    ? result.solution.value
    : JSON.stringify(result.solution.token);

  console.log('VerifiedToken:', verifiedToken);

  
  // Insertar token y enviar formulario (reemplace con el selector requerido)
  await page.evaluate((token) => {
    const input = document.querySelector('#mtcaptcha-verifiedtoken-1');
    if (input) input.value = token;
  }, verifiedToken);

  console.log('Token inserted into input');

  
  // await page.click('button[type="submit"]');

  await page.waitForTimeout(5000);

  await browser.close();
}

main().catch(err => {
  console.error('An error occurred:', err);
});
Cómo conectar MTCaptcha a su sitio web
Para orientarse con confianza en la funcionalidad del captcha en su sitio, entender su lógica, reconectarlo o reconfigurarlo, le recomendamos estudiar esta sección. Describe el proceso de integración — ayudándole a comprender rápidamente todos los detalles.

1. Regístrese o inicie sesión en su cuenta de MTCaptcha.

2. Después del registro, agregue su sitio web. Recibirá dos claves.

  • Site Key — clave pública para el frontend, para mostrar el widget.
  • Private Key — clave privada para el servidor, para verificar soluciones de captcha. Almacénela solo en el servidor, no la pase al cliente.

Ejemplo:

HowTo Connect image 1

3. Configure la parte del cliente de MTCaptcha:

Inserte el código en el <head> de la página.

Reemplace <YOUR SITE KEY> con su Site Key obtenida en el panel de MTCaptcha.


  <head>
  <script>
    var mtcaptchaConfig = {
      sitekey: "<YOUR SITE KEY>"
    };
  
    (function() {
      var mt_service = document.createElement('script');
      mt_service.async = true;
      mt_service.src = 'https://service.mtcaptcha.com/mtcv1/client/mtcaptcha.min.js';
      (document.head || document.body).appendChild(mt_service);
  
      var mt_service2 = document.createElement('script');
      mt_service2.async = true;
      mt_service2.src = 'https://service2.mtcaptcha.com/mtcv1/client/mtcaptcha2.min.js';
      (document.head || document.body).appendChild(mt_service2);
    })();
  </script>
</head>


Agregue el contenedor de captcha en el <body>

Donde quiera mostrar el captcha (por ejemplo, dentro de un formulario):

<div class="mtcaptcha"></div>

El widget se cargará automáticamente.

HelpIcon

Puede usar los SDK y plugins listos para una integración rápida:

  • SDK del lado del servidor: Java, Node.js, PHP
  • SDK del lado del cliente: React, React Native, Vue
  • Plugins CMS: WordPress, Drupal

MTCaptcha también ofrece una conveniente página demo donde puede probar y configurar la protección antes de implementarla en su sitio web.

4. Trabajo con el lado del servidor. Obtenga Verified-Token en el cliente.

A través de un campo oculto del formulario:

<input type="hidden" name="mtcaptcha-verifiedtoken" />

O mediante JS:

mtcaptcha.getVerifiedToken() / mtcaptchaVerifiedCallback(status)

Envíe el token al servidor junto con el formulario o la solicitud.

Verifique el token a través de la API (validación del servidor):

GET https://service.mtcaptcha.com/mtcv1/api/checktoken?privatekey=<PRIVATE_KEY>&token=<TOKEN>
  • privatekey — su clave privada (solo en el servidor)
  • token — token del cliente

URL alternativa para servidores con firewall:

https://service2.mtcaptcha.com/mtcv1/api/checktoken

Procesar respuesta:

success: true → captcha aprobado, continuar con el procesamiento.

EjemploEjemplo
arrow

success: false → error (token caducado, reutilizado, etc.)

HelpIcon
Cada verifiedToken es válido por unos minutos y solo puede verificarse una vez a través de la API CheckToken, evitando la reutilización. Después de recibir el token, el servidor debe verificarlo a tiempo — el widget MTCaptcha garantiza al menos 50 segundos para la validación.

Ejemplo simple usando el módulo MTCaptcha en Node.jsEjemplo simple usando el módulo MTCaptcha en Node.js
arrow

HelpIcon

Para un estudio detallado de las capacidades de MTCaptcha — personalización del widget, configuración cliente/servidor, integración con frameworks y otros aspectos — consulte la documentación oficial.

Background
Posibles errores y depuración
Bug Icon
Sitio o clave inválidos
El captcha no se carga o el servidor devuelve invalid-privatekey o privatekey-mismatch-token. Asegúrese de usar el par correcto de sitekey y privatekey.
Bug Icon
Token ausente o inválido
Errores missing-input-token, invalid-token, bad-request. Verifique que el valor del token se envíe al servidor y no sea modificado.
Bug Icon
Token caducado (token-expired)
El token es válido por un tiempo limitado (usualmente ~120 segundos), después del cual debe obtenerse nuevamente.
Bug Icon
Reverificación del token (token-duplicate-cal)
El token solo se puede verificar una vez — esto protege contra ataques de repetición.
Bug Icon
Clave caducada o desactivada (expired-sitekey-or-account)
Asegúrese de que las claves estén vigentes y la cuenta activa.
Bug Icon
Para diagnóstico, active el registro de solicitudes y muestre los fail_codes para comprender la causa del error.
Pruebas de resistencia de la protección
Consejos de seguridad y optimización
Guarde la <span class="font-bold">privatekey solo en el servidor</span>; no la envíe al cliente.
Registre los <span class="font-bold">fail_codes</span> para rastrear las causas de errores y analizar intentos de evasión de seguridad.
Incluya en el formulario enlaces a la <span class="font-bold">Política de Privacidad</span> y los <span class="font-bold">Términos de Uso</span> si así lo requiere la política de su plataforma.
Conclusión

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 MTCaptcha, 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 MTCaptcha 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.

Conclusion
Enlaces útiles
DocIconDocumentación de MTCaptchaDocIconDocumentación de CapMonster Cloud (trabajo con MTCaptcha)DocIconSDK y plugins para integración rápida de MTCaptchaDocIconPágina demo (Code Builder) de MTCaptcha

Preguntas frecuentes sobre MTCaptcha

Si el sitekey (sk) no es visible en el HTML o JavaScript de la página, inspeccione las solicitudes de red para encontrarlo:

  1. Abra DevTools → Network.
  2. Active el CAPTCHA y filtre las solicitudes por getchallenge.json.
  3. Copie el parámetro de consulta sk de la URL.

Para automatización (p. ej., Playwright): intercepte la misma solicitud de forma programática, analice sk de la cadena de URL y asígnelo directamente al campo websiteKey en su payload de MTCaptchaTask de CapMonster Cloud.

El pageAction en MTCaptchaTask debe coincidir estrictamente con el valor act encontrado en la solicitud de red getchallenge.json del sitio (junto con el parámetro sk). Esta coincidencia distingue entre mayúsculas y minúsculas e incluye caracteres especiales. Si el sitio usa el valor predeterminado %24, omita pageAction de su solicitud por completo. Leer más

Esto ocurre cuando el verifiedToken expira antes de que su backend lo valide. Los tokens de MTCaptcha solo son válidos durante 60–120 segundos de forma predeterminada. La solución fiable es iniciar la tarea en CapMonster Cloud inmediatamente antes de enviar el formulario, en lugar de al inicio de la sesión.

Establezca isInvisible: true solo si el widget MTCaptcha funciona en modo invisible. Señales de dicho modo:

  • No se muestra ninguna casilla de verificación ni elemento de captcha visible al cargar la página.
  • Un desafío adicional aparece solo si se detecta un comportamiento sospechoso o similar al de un bot.

Si la página muestra un widget MTCaptcha visible estándar, puede omitir el indicador isInvisible en su solicitud.

Pasar un valor booleano incorrecto generará un token no válido debido a una lógica de resolución no coincidente.

Puede hacerlo inyectando manualmente un token resuelto desde la API de CapMonster Cloud:

  1. Solicite una solución desde la API de CapMonster Cloud usando Postman, un script u otro cliente HTTP, pasando sus parámetros sk y act.
  2. Copie el solution.token devuelto en la respuesta de la API.
  3. Abra DevTools en la página de destino y encuentre el campo oculto <input name="mtcaptcha-verifiedtoken">.
  4. Pegue el token en el atributo value del campo y envíe el formulario para confirmar la validación.

Alternativamente, puede inspeccionar el tráfico de red de la página para identificar el endpoint exacto utilizado para la verificación del lado del servidor y enviar una solicitud HTTP directa que contenga el token resuelto.