# CAPTCHA vs desafío JavaScript: cómo elegir el método correcto de detección de bots

> Ambos enfoques filtran bots de usuarios reales — pero funcionan distinto, fallan distinto e imponen una fricción distinta. Así se elige.

- Category: Técnico
- Author: Equipo Akarguard, Ingeniería de Seguridad
- Published: Aug 14, 2024
- Canonical: https://akarguard.net/es/blog/captcha-vs-desafio-javascript

---

Cuando un proxy inverso detecta tráfico sospechoso de una IP o un ASN, tiene dos opciones amplias: bloquearlo directamente o desafiarlo. Bloquear arriesga rechazar a usuarios reales atrapados en la misma red; un desafío deja que los visitantes legítimos se demuestren mientras filtra a los clientes automatizados. Dominan dos tipos de desafío — los desafíos JavaScript y los CAPTCHA — y elegir entre ellos es en realidad una decisión sobre cuánta fricción estás dispuesto a imponer a las personas reales.

## Desafíos JavaScript

El proxy devuelve una página que contiene un pequeño puzzle de JavaScript. Un navegador real lo ejecuta, lo resuelve y fija una cookie de verificación — todo de forma invisible, normalmente en menos de un segundo. Un visitante ve, como mucho, un breve destello. La mayoría de las herramientas de ataque automatizadas no ejecutan un motor JavaScript completo, así que simplemente fallan y no reciben contenido. La gran ventaja es la fricción cero: a los usuarios legítimos no se les pide nada.

## Desafíos CAPTCHA

Un CAPTCHA pide al usuario demostrar activamente que es humano — identificar imágenes, marcar una casilla, resolver audio. Esto atrapa bots más sofisticados, incluidos algunos que pueden ejecutar JavaScript pero no resolver un puzzle visual. El coste es real: los CAPTCHA añaden fricción, reducen la conversión de forma medible y crean barreras de accesibilidad para usuarios con discapacidades visuales o motoras. Su sitio está en las acciones de alto valor, no en la puerta de entrada de cada página.

- Desafío JS: fricción cero, invisible, bloquea la mayoría de los bots simples — pero un navegador headless decidido puede pasarlo.
- CAPTCHA: fricción visible, detiene la mayoría de los bots, mala accesibilidad y típicamente un 5–15% de abandono de usuarios en el propio desafío.
- Desafíos conductuales / de casilla: menor fricción, usando señales como el movimiento del ratón y el tiempo para juzgar si es humano.

> **La fricción es un coste, no una función** — Cada desafío que muestras a un usuario real es un pequeño impuesto sobre la conversión y la accesibilidad. El objetivo es la mínima fricción que detiene el ataque — lo que normalmente significa una comprobación invisible por defecto y una visible solo donde lo justifique lo que está en juego.

## Cómo elegir — y cómo lo aplica Akarguard

La regla práctica: usa los desafíos JavaScript como opción por defecto para el tráfico sospechoso durante un ataque, porque no cuestan nada a los usuarios reales, y reserva el CAPTCHA para endpoints específicos de alto valor — login, checkout, registro — que estén siendo atacados activamente con credential stuffing o abuso. Nunca pongas un CAPTCHA en el tráfico general de páginas; la pérdida de conversión supera la ganancia de seguridad. Akarguard sigue exactamente este modelo: los modos de protección por dominio aplican una comprobación invisible de JavaScript/cookie por defecto y escalan a un modo CAPTCHA solo donde tú elijas, de modo que la protección escala con la amenaza en vez de gravar a cada visitante.

---

Source: Akarguard Security Blog (https://akarguard.net/es/blog). Akarguard provides DDoS protection: traffic is proxied through our edge, attack traffic is filtered, and clean traffic reaches your origin. Reuse of this article with attribution and a link to the canonical URL is permitted.
