// DevOps

Servicios de CAPTCHA modernos: reCAPTCHA, Turnstile, hCaptcha y SmartCaptcha — cómo funcionan y cuál elegir

Publicado el 22.09.2026

La CAPTCHA moderna dejó de ser simplemente un «ejercicio de reconocimiento de letras torcidas». Hoy es un mecanismo anti-bot completo que analiza no solo la acción explícita del usuario, sino también el contexto de la solicitud: comportamiento en el navegador, frecuencia y naturaleza de las interacciones, señales de red y, en algunos casos, señales adicionales del entorno del dispositivo. En Cloudflare Turnstile, por ejemplo, se documentan por separado los Ephemeral IDs — identificadores de corta vida para reforzar el análisis antifraude sin las cookies clásicas — y Google reCAPTCHA Enterprise ya no se presenta como un «widget con imágenes», sino como parte de un sistema de protección contra scraping, credential stuffing, registros falsos y otros abusos.

A continuación — un análisis de los principales actores del mercado, el esquema real de integración y esos detalles en los que fracasa la mitad de las implementaciones.

Google reCAPTCHA (v2 / v3 / Enterprise)

Google reCAPTCHA sigue siendo una de las soluciones más conocidas del mercado. El servicio tiene varios modos de integración: v2 con checkbox, invisible reCAPTCHA, v3 con modelo de score y la rama Enterprise, vinculada a Google Cloud. Es importante entender que hoy la línea entre una «captcha simple» y una evaluación de riesgo (risk assessment) completa por parte de Google está bastante difusa: incluso Google recomienda interpretar el score y construir la lógica del servidor alrededor de él, en lugar de confiar únicamente en el hecho de que el widget se haya completado.

  • reCAPTCHA v2 («No soy un robot») Variante clásica con checkbox. Si la verificación no está segura sobre el usuario, puede mostrarse un challenge adicional. Google también tiene invisible reCAPTCHA, que pertenece a la familia v2 y puede invocarse sin un checkbox explícito.

  • reCAPTCHA v3 Modo completamente invisible. En lugar de «resolver imágenes» devuelve un score que usted interpreta en su lado. Google destaca que el token v3 debe solicitarse en el momento de la acción del usuario, no al cargar la página, porque el token vive solo 2 minutos.

  • reCAPTCHA Enterprise Esto ya es un sistema de protección contra abusos y fraude, no solo un widget. En la documentación oficial, Google Enterprise se posiciona explícitamente como herramienta contra scraping, forzado de credenciales, toma de cuentas, registros falsos y fraude en pagos. Para los sitios, el servidor suele crear una evaluación de riesgo (assessment) y, según ella, decide — permitir la solicitud, requerir una verificación adicional o bloquearla.

Desde el punto de vista práctico, reCAPTCHA tiene dos desventajas persistentes. La primera — privacidad: el servicio está estrechamente ligado a la infraestructura de Google, y algunos equipos no quieren arrastrar esa dependencia en formularios públicos. La segunda — disponibilidad por regiones y redes: si los servicios de Google se abren lentamente o de forma inestable para sus usuarios, la captcha degradará junto con ellos. Google afirma oficialmente cumplimiento con GDPR para la versión Cloud de reCAPTCHA, por lo que la cuestión no es tanto «legal o ilegal», sino la elección arquitectónica y el modelo de confianza.

Cloudflare Turnstile

Cloudflare Turnstile en los últimos años se convirtió en la alternativa directa más notable. Su fuerte es la fricción mínima para el usuario. Cloudflare dice claramente que Turnstile puede integrarse en cualquier sitio sin el uso obligatorio del CDN de Cloudflare, y en muchos casos el servicio funciona sin mostrar la CAPTCHA tradicional.

Turnstile tiene varios modos de operación:

  • Non-interactive — el usuario no hace nada en absoluto.
  • Managed — puede aparecer una verificación interactiva si hay sospecha.
  • Invisible — modo completamente oculto.

A marzo de 2026 Turnstile tiene un plan gratuito y un plan Enterprise. La opción gratuita es oficialmente adecuada no solo para pruebas y sitios personales, sino para la mayoría de aplicaciones en producción; Enterprise ya se necesita para volúmenes altos, gestión compleja de hosts, detección avanzada de bots y escenarios de compliance. Por eso es más correcto decir no «el servicio es totalmente gratuito para siempre sin condiciones», sino «hay un tier gratuito muy generoso y un nivel enterprise separado».

Desde el punto de vista de la privacidad Cloudflare tiene un fuerte argumento de marketing: Turnstile no recopila datos para retargeting publicitario. Además, el servicio dispone de Ephemeral IDs — identificadores de corta vida, ligados a la cuenta, que ayudan a detectar patrones de abuso sin el rastreo cross-site clásico. Esto no significa «no se recopilan datos en absoluto», sino que la arquitectura es notablemente menos problemático en discusiones de privacidad que el enfoque clásico de Google.

Otro punto a favor — disponibilidad. Cloudflare afirma cumplimiento de Turnstile con WCAG 2.2 AAA, lo que para formularios públicos y servicios B2C ya no es un bono agradable sino un criterio de selección práctico.

hCaptcha

hCaptcha es otro gran actor alternativo que pone énfasis en la privacidad y la protección contra abusos para clientes grandes. En el escenario básico es muy similar a la integración clásica de CAPTCHA: widget en el frontend, token en el servidor, validación en el servidor. Pero en el nivel enterprise hay modos pasivos sin verificación explícita, evaluación de riesgo, modelos de amenaza configurables, analítica extendida y APIs adicionales. Es decir, hCaptcha no es solo un reemplazo de Google, sino una plataforma de protección contra abusos.

hCaptcha sí tiene un modelo de monetización mediante el cual los propietarios de sitios pueden recibir pagos por participar en el ecosistema de etiquetado y tráfico de challenges. Pero esto no debería presentarse como la principal razón para elegirlo. En la práctica, hCaptcha se elige más por sustituir a Google, por disponibilidad regional y por una posición de privacidad más flexible.

En accesibilidad, hCaptcha ofrece no solo verificación de audio sino otras formas de pasar la comprobación, incluyendo textuales. Esto es un matiz importante: en 2026 la mera existencia de una «audio-captcha» ya no se puede considerar suficiente para buena accesibilidad.

Yandex SmartCaptcha

Yandex SmartCaptcha es un candidato fuerte para el segmento RU y, en general, para escenarios donde la localización de datos, la buena accesibilidad desde Rusia y la integración con la infraestructura de Yandex Cloud son críticas. La documentación oficial de Yandex describe varios modos: invisible captcha, verificaciones intermedias como checkbox o slider y tareas más complejas para solicitudes sospechosas. En la página del servicio se listan por separado tipos de tareas, incluyendo reconocimiento de texto, slider, siluetas y caleidoscopio.

Es importante no confundir dos cosas. Primera: SmartCaptcha efectivamente es conveniente para proyectos rusos porque vive en la ecosistema de Yandex Cloud. Segunda: la formulación «SmartCaptcha automáticamente hace que su proyecto cumpla con la ley 152-ФЗ» es demasiado rotunda. Es más correcto decir: Yandex Cloud en general declara cumplimiento con los requisitos de la 152-ФЗ y provee infraestructura para la localización y el procesamiento de datos personales en Rusia, lo que hace a SmartCaptcha una opción natural para esos escenarios. Pero la responsabilidad legal y el modelo completo de compliance siguen recayendo en el propietario del sistema.

En UX, SmartCaptcha tiene como punto fuerte la orientación a fricción mínima. En la página del servicio Yandex dice explícitamente que en muchos casos al usuario le basta con pulsar «I’m not a robot», y solo se muestra una tarea compleja si hay sospecha de bot.


2. Cómo está realmente organizada la integración

Cualquier CAPTCHA moderna funciona con un esquema de dos etapas. Si solo implementó el widget en el frontend y no hizo la validación en el servidor, en realidad no tiene protección. Esto está formulado de manera muy clara en la documentación de Cloudflare Turnstile: sin llamar a Siteverify la configuración se considera incompleta, y el widget cliente por sí solo no proporciona protección. La misma lógica aplica a Google reCAPTCHA, hCaptcha y Yandex SmartCaptcha.

Etapa 1: la parte cliente

En el frontend conecta la librería JS del servicio y renderiza el widget o la mecánica invisible. Tras la verificación exitosa el servicio coloca un token en un campo oculto del formulario o lo devuelve vía callback. Por ejemplo:

  • g-recaptcha-response en Google reCAPTCHA.
  • cf-turnstile-response en Cloudflare Turnstile.
  • h-captcha-response en hCaptcha.
  • smart-token en Yandex SmartCaptcha.

Después ese token debe enviarse a su backend junto con la carga útil del formulario: login, contraseña, mensaje de contacto, datos del pedido, etc.

Etapa 2: verificación en el servidor

Esta es la etapa principal. Su backend debe enviar el token al servidor del proveedor de CAPTCHA y asegurarse de que el token:

  • existe;
  • no ha expirado;
  • no se ha usado de nuevo;
  • corresponde a la acción o sitio esperado;
  • pasó la validación.

A continuación — endpoints típicos de verificación.

Google reCAPTCHA

bash
curl -X POST https://www.google.com/recaptcha/api/siteverify \
  -d "secret=<secret_key>" \
  -d "response=<token>" \
  -d "remoteip=<user_ip>"

reCAPTCHA devuelve un JSON con el campo success, y para escenarios tipo v3 y Enterprise son importantes también el score y el contexto de la evaluación. El token vive 2 minutos y puede verificarse solo una vez.

Cloudflare Turnstile

bash
curl -X POST https://challenges.cloudflare.com/turnstile/v0/siteverify \
  -d "secret=<secret_key>" \
  -d "response=<token>" \
  -d "remoteip=<user_ip>"

En Turnstile la verificación en el servidor es obligatoria. El token expira en 5 minutos y es de un solo uso.

hCaptcha

bash
curl -X POST https://api.hcaptcha.com/siteverify \
  -d "secret=<secret_key>" \
  -d "response=<token>" \
  -d "remoteip=<user_ip>"

En hCaptcha el token por defecto también vive 120 segundos, y el reuso devuelve un error separado already-seen-response.

Yandex SmartCaptcha

bash
curl -X POST https://smartcaptcha.cloud.yandex.ru/validate \
  -d "secret=<server_key>" \
  -d "token=<token_from_form>" \
  -d "ip=<user_ip>"

Yandex indica que el token de SmartCaptcha es válido 5 minutos y puede usarse una sola vez. En la respuesta recibirá un JSON con status, y se puede procesar el formulario solo con status ok.


3. Qué exactamente verificar en el backend

El error de integración más habitual es que el desarrollador verificó que el campo con el token no está vacío y se quedó tranquilo. Eso no es protección. La secuencia correcta es:

  1. Aceptar el token desde el frontend.
  2. Enviarlo a la API del proveedor.
  3. Verificar el éxito de la validación.
  4. Asegurarse de que el token no esté expirado ni haya sido reutilizado.
  5. Para soluciones basadas en score — interpretar el score en su lado.
  6. Solo después procesar la solicitud original.

Para reCAPTCHA v3 y escenarios enterprise es especialmente importante no convertir el score en un número mágico. El umbral depende del contexto. Para un formulario de comentarios puede permitirse tráfico más riesgoso, mientras que para login, recuperación de contraseña, registro o pago los umbrales y las acciones deben ser más estrictos. Google expone explícitamente que el score debe interpretarse según las particularidades de su sitio y su tráfico.


4. Importantes matices técnicos que se olvidan

El token no se puede simplemente «repropagar»

Todos los proveedores grandes hacen tokens de corta vida y de un solo uso. En Google y hCaptcha el plazo típico es 2 minutos. En Turnstile y SmartCaptcha son 5 minutos. La revalidación del mismo token o fallará, o devolverá un error de reuse/expired. Esto está hecho precisamente para proteger contra ataques de replay.

Timeouts en la llamada a la API de CAPTCHA son obligatorios

Si la API externa de CAPTCHA no es accesible desde su datacenter, un backend colgado se transforma fácilmente en un DoS contra sí mismo. Por eso la llamada saliente al servicio CAPTCHA debe tener un timeout corto. En la documentación de Yandex hay un ejemplo con CURLOPT_TIMEOUT, y en la práctica 1–3 segundos es un rango razonable para formularios públicos. Qué hacer ante un error depende del tipo de operación:

  • fail close — rechazar la solicitud si la API de CAPTCHA no está disponible;
  • fail open — permitir la solicitud, pero con restricciones adicionales;
  • soft fail — pedir reenvío del formulario, una verificación alternativa o un segundo factor.

Para login, registro, password reset, checkout y operaciones write en API suele ser mejor fail close o soft fail. Para suscripciones a un blog o formularios secundarios a veces es aceptable fail open con rate limit y logging.

CAPTCHA no es un sistema anti-bot completo

Cualquier CAPTCHA es solo una capa de protección. Google, Cloudflare, hCaptcha y Yandex funcionan mejor en conjunto con otras medidas:

  • rate limiting;
  • reputación de IP / ASN;
  • anomalías de dispositivo / sesión;
  • señales de comportamiento;
  • limitaciones en la velocidad de registro, login o envío de formularios;
  • WAF y reglas antifraude;
  • reglas separadas para redes anónimas, proxies y datacenters.

Si tiene un problema serio con bots, una sola CAPTCHA no lo resolverá. Los servicios de anti-captcha vivos, granjas de dispositivos y navegadores proxy ya saben pasar comprobaciones básicas. CAPTCHA debe funcionar como una barrera adicional y como fuente de señales para su lógica de servidor.

Accesibilidad — ya es parte de la seguridad

Una mala CAPTCHA no solo reduce la conversión, sino que rompe la accesibilidad. Cloudflare declara WCAG 2.2 AAA para Turnstile. hCaptcha desarrolla formas accesibles de verificación, incluyendo textuales. Yandex SmartCaptcha destaca la accesibilidad como un aspecto propio del producto. Frente a esto, las CAPTCHA visuales «antiguas» con símbolos extraños ya se ven como deuda técnica.

CSP puede romper la integración

Si tiene una política Content-Security-Policy estricta, el widget puede no cargarse en absoluto. Para Turnstile Cloudflare recomienda usar CSP basada en nonce o añadir explícitamente el dominio en script-src y frame-src. En Yandex SmartCaptcha el JS se carga desde el dominio smartcaptcha.cloud.yandex.ru, y esto también debe contemplarse en la política de carga de scripts.

Por ejemplo, para Turnstile una configuración típica sería:

http
Content-Security-Policy:
  script-src 'self' https://challenges.cloudflare.com;
  frame-src https://challenges.cloudflare.com;

Y para SmartCaptcha debe prever permitir la carga del script y recursos relacionados desde los dominios de Yandex Cloud usados por el widget.

Claves de prueba y entorno de staging

Otro error común — usar claves de producción en las pruebas automatizadas. Google para v2 tiene claves de test oficiales, y Cloudflare Turnstile documenta por separado sitekeys y secret keys dummy para testing. Para v3 Google recomienda crear una clave separada para el entorno de pruebas, porque el score sin tráfico real será igualmente no representativo.


5. Recomendaciones prácticas para la elección

Cuándo elegir Cloudflare Turnstile

Turnstile es una elección por defecto muy sólida para la mayoría de proyectos web modernos. Es simple de integrar, no requiere Cloudflare CDN, funciona bien sin mostrar challenges explícitos, tiene una fuerte posición en accesibilidad y es útil cuando no quiere arrastrar dependencia de Google. Para sitios de marketing, SaaS, dashboards, formularios de login, contacto y registro, hoy es una de las opciones más pragmáticas.

Cuándo elegir Google reCAPTCHA

reCAPTCHA tiene sentido si ya está profundamente en la ecosistema de Google Cloud, necesita un nivel enterprise maduro de protección, o está construyendo lógica antifraude compleja alrededor de assessment y risk scoring. Pero en formularios públicos y escenarios B2C globales las alternativas ganan cada vez más — por UX, preocupaciones de privacidad y disponibilidad regional.

Cuándo elegir hCaptcha

hCaptcha es lógico donde la privacidad es importante, se necesita un reemplazo de Google sin perder protección contra abusos y se requieren capacidades más amplias para clientes grandes — modos pasivos y modelos de amenaza configurables. La monetización adicional del servicio existe, pero para un proyecto de producción es secundaria.

Cuándo elegir Yandex SmartCaptcha

SmartCaptcha es una elección razonable para proyectos con audiencia en Rusia y la CEI, así como para sistemas donde la disponibilidad local, el ecosistema en ruso y los requisitos de localización de datos son críticos. Se integra especialmente bien con otros servicios de Yandex Cloud. Pero, como cualquier otra CAPTCHA, por sí sola no cierra toda la clase de ataques y no sustituye rate limiting, WAF y lógica antifraude en servidor.


6. Tabla resumen

ServicioCarga para el usuarioPrivacidad / postura de datosComplejidad de implementaciónQué es importante saber
reCAPTCHA v2Baja / mediaMenor que alternativas con enfoque en privacidadMediaCheckbox clásico y challenge
reCAPTCHA v3Casi nulaMenor que alternativas con enfoque en privacidadMediaHay que interpretar el score por cuenta propia
reCAPTCHA EnterpriseCasi nula / adaptableDepende de su modelo de confianza en Google CloudSuperior a mediaNo es solo CAPTCHA, es un risk assessment
Cloudflare TurnstileMuy bajaFuerte postura de privacidadFácilValidación server-side obligatoria
hCaptchaBaja / mediaFuerte postura de privacidadMediaTiene escenarios passive / risk-score en enterprise
Yandex SmartCaptchaBajaConveniente para localización y Yandex CloudMediaBien para el segmento RU

7. Checklist mínimo para producción

Antes de considerar la CAPTCHA «implementada», verifique:

  • el token se valida únicamente en el servidor;
  • la clave secreta no aparece en el código frontend;
  • la llamada a la API de CAPTCHA tiene timeout;
  • no se permite el reuso del token;
  • las fallas de validación se registran en logs;
  • existe lógica separada para degradación de la API externa de CAPTCHA;
  • el umbral de score para soluciones invisibles está ajustado con tráfico real;
  • CSP está configurada y no rompe la carga del widget;
  • la CAPTCHA se complementa con rate limiting y lógica antifraude básica.

Conclusión

Si se elige de forma pragmática, sin guerras religiosas ni teoría extra, para la mayoría de aplicaciones web modernas Cloudflare Turnstile ahora parece la opción más versátil: rápido, poco intrusivo para el usuario, formalmente trabajado en accesibilidad y no vinculado al ecosistema de Google.

Si la localización de datos, la disponibilidad desde Rusia y la integración con Yandex Cloud son críticas, Yandex SmartCaptcha es un candidato muy fuerte. Simplemente no lo presente como una «garantía automática de cumplimiento de la 152-ФЗ»: es más correcto decir que encaja bien en una infraestructura diseñada con esos requisitos.

Si necesita un modelo más desarrollado de protección contra fraude con evaluación de riesgo y una integración estrecha con la ecosistema de Google, considere reCAPTCHA Enterprise. Si quiere una alternativa privacy-first con un sólido nivel enterprise sin Google — mire hacia hCaptcha.

Y lo más importante: CAPTCHA no es una bala de plata. Debe ser parte de un modelo de protección más amplio, no la única barrera entre su API y la granja de bots.

// Reviews

Reseñas relacionadas

Llegué con una solicitud costosa para la configuración de un servidor VPS, pero durante la consulta Mikhail propuso una solución mucho más sencilla y económica. Al final ahorré dinero y tiempo. Mikhail — un verdadero experto que trabaja por el resultado del cliente, no por la factura. ¡Lo recomiendo!

Llegué con una solicitud costosa para la configuración de un servidor VPS, pero durante la consulta Mikhail propuso una solución mucho más simple y económica. Al final ahorré presupuesto y tiempo. Mikhail es un …

kfhzasorin

Configuración de VPS, configuración del servidor

12.05.2026 · ★ 5/5

Hubo varios problemas, tanto en la parte técnica como en la comprensión general. Mijaíl respondió rápido a la solicitud, ayudó a aclarar las cosas y resolvió los problemas técnicos; por ello, muchas gracias. Estoy satisfecho con el resultado.

Hubo varios problemas relacionados tanto con la parte técnica como con la comprensión en general. Mijaíl respondió rápidamente a la solicitud, ayudó a aclarar las cosas y resolvió los problemas técnicos, por lo que le …

abazawolf

Configuración de VPS, configuración del servidor

18.02.2026 · ★ 5/5

// Contact

¿Necesitas ayuda?

Escríbeme y te ayudaré a resolver el problema

Respondo en un día laborable (03:00-13:00 GMT)

Или оставьте заявку здесь:

Confirme que no es un bot.

Escribir y recibir una respuesta rápida