Captcha local
La imagen se genera y se valida en CosasDNS. Sin proveedor externo y sin claves de terceros.
El captcha propio de CosasDNS para las webs que gestionas.
Captcha Manager ofrece el captcha propio de CosasDNS para tus webs: imagen, híbrido o invisible, siempre con proof-of-work, una API key y una lista de dominios permitidos. Sin Google reCAPTCHA, hCaptcha ni Turnstile.
EmpezarNo hay registro propio: el botón te lleva a admin.cosasdns.com, donde usas tu sesión de siempre.
Tres modos, proof-of-work y control por app para validar el captcha en tu web.
La imagen se genera y se valida en CosasDNS. Sin proveedor externo y sin claves de terceros.
En los tres modos, el cliente resuelve un reto de proof-of-work antes de validar. Sin PoW no hay validación.
Cada integración tiene su propia API key. Se envía en la cabecera X-API-Key.
Autoriza dominios exactos (sub.test.com) o wildcard (*.test.com). El servidor comprueba Origin y Referer contra esa lista.
El API aplica rate limit por clave e IP para frenar el abuso.
401 si la API key no vale, 403 si el dominio no está permitido, 429 si se supera el límite y 422 si falta algún dato.
Cada app decide cómo pedir la verificación. El proof-of-work se mantiene siempre.
Siempre pide el código de la imagen y el proof-of-work. Es el modo más explícito y el fallback seguro.
Calcula un score invisible; si el riesgo sube, muestra la imagen. Permite forzar la imagen manualmente.
Calcula el score sin mostrar imagen; si el riesgo sube, hace fallback automático a imagen y PoW.
Captcha Manager no tiene panel propio: todo se configura en admin.cosasdns.com → Dashboard → Captcha.
Abre admin.cosasdns.com con tu cuenta de CosasDNS. Si no tienes sesión, el propio Admin te permite entrar o registrarte.
En el Dashboard, dentro del bloque APIs, pulsa Captcha.
Ponle título, añade los dominios, activa la app y copia la API key para tu web.
La sesión, el login y el registro son los de admin.cosasdns.com. Esta landing no pide credenciales.
El modo elegido cambia el reto, pero el flujo es el mismo:
Añade el componente al formulario y valida el captcha en tu servidor antes de procesar los datos.
El componente pinta la imagen o resuelve el reto invisible, calcula el proof-of-work y añade captcha_id, captcha_input, captcha_token y pow_* al payload.
<script type="module">
import CosasCaptchaForm from 'https://cdn.cosasdns.com/components/captcha/form.js?v=160';
new CosasCaptchaForm({
form: '#contact-form',
result: '#form-result',
captchaContainer: '#captcha',
apiKey: 'TU_API_KEY',
lang: 'es',
// El componente añade captcha_id, captcha_input, captcha_token y pow_* al payload.
submit: async (payload) => {
const response = await fetch('/contact.php', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify(payload)
});
return response.json();
}
}).init();
</script>Envía id/input para el modo imagen y captcha_token para invisible/híbrido. Valida contra la API con la misma API key y el dominio del formulario; no proceses el formulario si valid es false.
<?php
$payload = json_decode(
file_get_contents('php://input'),
true,
512,
JSON_THROW_ON_ERROR
);
$ch = curl_init('https://api.cosasdns.com/captcha/app/validate');
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Content-Type: application/json',
'X-API-Key: ' . getenv('CAPTCHA_API_KEY'),
'X-Captcha-Domain: ' . $_SERVER['HTTP_HOST'],
],
CURLOPT_POSTFIELDS => json_encode([
'id' => $payload['captcha_id'] ?? '',
'input' => $payload['captcha_input'] ?? '',
'captcha_token' => $payload['captcha_token'] ?? '',
'pow_challenge' => $payload['pow_challenge'] ?? '',
'pow_signature' => $payload['pow_signature'] ?? '',
'pow_nonce' => $payload['pow_nonce'] ?? '',
], JSON_THROW_ON_ERROR),
]);
$response = curl_exec($ch);
curl_close($ch);
$result = json_decode((string) $response, true, 512, JSON_THROW_ON_ERROR);
if (!($result['data']['valid'] ?? false)) {
http_response_code(422);
exit('Captcha inválido');
}
// Continúa con el alta, contacto, etc.La API key está limitada a los dominios de la app. No la uses como sustituto de la validación en servidor: el navegador puede omitir cualquier comprobación del cliente.
No. Captcha Manager usa la cuenta y la sesión de admin.cosasdns.com. Desde esta landing solo te llevamos allí.
No. El captcha es propio: imagen generada en CosasDNS más un proof-of-work obligatorio. Cada app puede usar modo imagen, híbrido o invisible.
Cada app tiene su lista de dominios. Puedes autorizar el dominio exacto o un wildcard como *.test.com. El API comprueba Origin y Referer contra esa lista.
En Admin → Dashboard → Captcha. La clave se puede consultar y rotar desde ahí; no se muestra en esta landing.
El API devuelve 403 y no valida el captcha: el dominio de origen no está en la lista de la app.