A un bot que ignora robots.txt no lo frenan más directivas: el servidor tiene que hacer cumplir la política de acceso. Las defensas se agrupan en tres familias. El bloqueo directo (CAPTCHA, WAF, rate limiting) impide el acceso antes de servir el recurso; las estrategias de decepción (honeypots, enlaces invisibles) dejan navegar al bot, pero manipulan lo que percibe; y los pozos de alquitrán (tarpits) lo mantienen ocupado con contenido sin valor.
Serie sobre bots y agentes de IA. Este artículo forma parte de una serie de tres:
- Qué bots de IA admitir y con qué directivas: robots.txt, meta robots y llms.txt.
- Cómo frenar a los bots que ignoran esas directivas: CAPTCHA, WAF, honeypots y tarpits (este artículo).
- Qué riesgos asume quien despliega un agente propio: prompt injection, consumo y data poisoning.
Cuando las directivas voluntarias no bastan
El fichero robots.txt, las etiquetas meta y las cabeceras de rastreo funcionan como un convenio de cumplimiento voluntario. Sin embargo, muchos bots no respetan esas directrices, ya se trate de rastreadores de buscadores, agentes al servicio de usuarios o recopiladores que alimentan los LLM de diversas compañías. La seguridad general de una web la repasamos en Tu web funciona, pero ¿está protegida?.
Bloqueo directo: CAPTCHA, WAF y rate limiting
El bloqueo directo es la filosofía más clásica: pretende impedir el acceso al recurso antes de que el bot o agente llegue a interactuar con él. Frente a las directrices voluntarias, aquí es el servidor quien hace cumplir la política de acceso. Las medidas se aplican de forma escalonada, según los indicios de automatización.
- CAPTCHA. Es una prueba visual o lógica, sencilla para una persona y costosa para un sistema automatizado. Identificar semáforos o descifrar letras deformadas penaliza la experiencia de usuario, así que suele reservarse para inicios de sesión, altas de cuenta y formularios sensibles.
- JavaScript challenge. Una alternativa menos intrusiva: el cliente ejecuta código JavaScript que comprueba que existe un navegador funcional y genera un token para continuar. Es transparente para el usuario legítimo y suele ser la primera línea de defensa.
- Prueba de trabajo (Proof of Work). El navegador resuelve un problema deliberadamente costoso de calcular y fácil de verificar. Para un usuario pasa prácticamente desapercibido; para quien pretende realizar millones de peticiones, el coste acumulado es un elemento disuasorio. Un ejemplo es Anubis (se abre en una pestaña nueva), cuyo desafío se verifica en el servidor con un solo hash (se abre en una pestaña nueva); su documentación avisa de que también puede bloquear bots legítimos si no se configuran excepciones.
- WAF. Un WAF (web application firewall, cortafuegos de aplicaciones web) incorpora motores de detección de bots que analizan varias señales a la vez: reputación de la IP, comportamiento de navegación, frecuencia de peticiones, cabeceras HTTP, cookies o historial de la sesión. Con ellas asignan una puntuación de riesgo y deciden si permiten el acceso, presentan un desafío o bloquean la conexión.
- Rate limiting. El rate limiting es el límite de peticiones que un cliente puede realizar en un intervalo de tiempo, por dirección IP, sesión, usuario autenticado, token de acceso o rutas especialmente costosas.
- Listas de bloqueo de IP y ASN. Reputación de direcciones, rangos o sistemas autónomos (ASN) asociados a proveedores cloud, redes de proxies, VPN o infraestructuras que alojan bots. El servidor bloquea ese tráfico o eleva el nivel de comprobación.
- Fingerprinting de navegadores. La versión del navegador, las fuentes instaladas o la resolución de pantalla componen una huella que permite detectar a un mismo bot aunque cambie de IP o borre sus cookies. Su contrapartida es grave: facilita rastrear a un mismo usuario a lo largo de Internet.
- Atestación y Private Access Tokens. Buscan dejar atrás los CAPTCHA sin recurrir al fingerprinting.
Cómo funcionan los Private Access Tokens
Los Private Access Tokens (PAT) los presentó Cloudflare en junio de 2022 (se abre en una pestaña nueva), junto con Apple, Google y otras compañías, como extensión del protocolo abierto Privacy Pass. La IETF publicó la arquitectura y el esquema de autenticación HTTP en junio de 2024 (RFC 9576 (se abre en una pestaña nueva) y RFC 9577 (se abre en una pestaña nueva)). Intervienen cuatro papeles: cliente, origen, atestador y emisor.
Al entrar en una web protegida, el dispositivo solicita un token. El atestador (en el ejemplo de Cloudflare, Apple como fabricante) verifica el dispositivo, y el emisor (Cloudflare) emite el token. El atestador no sabe qué web visita el usuario y el emisor no recibe datos del dispositivo. El servidor comprueba criptográficamente que el token procede de un emisor legítimo y puede aceptarlo en lugar de presentar un CAPTCHA. Funciona en dispositivos y sistemas compatibles.
La atestación verifica el dispositivo, no lo que hace el cliente. Un scraper que se ejecute en un dispositivo legítimo, o que automatice su navegador, obtiene un token válido. Sirve para detectar sistemas comprometidos y granjas masivas de bots, no la automatización en sí.
Estrategias de decepción: honeypots y enlaces invisibles
La decepción permite que el bot siga navegando, pero manipula el entorno que percibe para inducirlo a equivocarse o a desperdiciar recursos.
- Honeypots. Un honeypot es una página, formulario o servicio expuesto deliberadamente que un usuario legítimo nunca utilizaría. Cualquier acceso es una señal fuerte de comportamiento automatizado o malicioso y permite clasificar al cliente sin interferir con los usuarios reales.
- Enlaces invisibles. Ocultos mediante CSS, JavaScript o atributos HTML, siguen presentes en el código fuente. El rastreador que los sigue revela su naturaleza automatizada y puede ser redirigido a contenido diseñado para él.
- Páginas de señuelo. Contenido aparentemente legítimo y sin interés para los usuarios, que atrae a los bots hacia zonas donde se les observa, ralentiza o analiza.
- Contenido artificial. Grandes cantidades de texto sintético, coherente en apariencia y sin valor práctico, para encarecer el rastreo, dificultar la extracción de información útil o contaminar los datos obtenidos.
- Honeytokens. Elementos falsos (direcciones de correo inexistentes, claves API ficticias, documentos señuelo o enlaces únicos) que actúan como marcadores. Si un tercero los utiliza, queda la evidencia de que el contenido se ha recopilado sin autorización.
AI Labyrinth, la versión de Cloudflare
AI Labyrinth (se abre en una pestaña nueva), que Cloudflare anunció en marzo de 2025, adapta estas técnicas a los rastreadores de IA. En lugar de bloquear de inmediato, genera una red de páginas sintéticas enlazadas entre sí, a la que se llega por enlaces ocultos en las páginas reales. Los usuarios legítimos nunca la ven; el bot que ignora las directrices de rastreo queda recorriendo páginas sin valor, lo que según Cloudflare lo frena, lo confunde y desperdicia sus recursos.
La frontera entre estas familias es difusa: AI Labyrinth actúa como honeypot, porque quien sigue varios enlaces del laberinto queda identificado como bot, y a nuestro entender también como un tarpit ligero que consume el tiempo del rastreador.
Pozos de alquitrán o tarpits: mantener ocupado al rastreador
Los AI tarpits (literalmente, pozos de alquitrán) buscan que el bot permanezca ocupado el mayor tiempo posible. En lugar de devolver un error, el servidor responde con contenido aparentemente válido que prolonga el rastreo. El propósito es modificar la economía del rastreo: cada segundo dedicado a contenido sin valor deja de invertirse en páginas reales, lo que aumenta el coste de la operación y reduce la rentabilidad del scraping.
- Árbol de enlaces sin final. La implementación más sencilla: cada página enlaza a otras nuevas, generadas dinámicamente, y el rastreador nunca alcanza una condición natural de terminación.
- Calendarios infinitos. Una técnica heredada de los buscadores: la navegación avanza indefinidamente hacia meses y años pasados o futuros.
- Paginación interminable. Secuencias de resultados (
?page=1,?page=2,?page=3) con contenido repetido o generado automáticamente. - Respuesta lenta o sin fin. El contenido se transmite en pequeños fragmentos durante decenas de segundos o minutos y mantiene abierta la conexión. En su versión extrema, la respuesta HTTP no termina nunca.
- Cadenas de redirecciones. Varios saltos 301 o 302 antes del recurso final, o ciclos controlados.
- Grafos de páginas. Cada nodo enlaza con muchos otros, lo que dificulta detectar patrones repetitivos y amplía el espacio de exploración aparente.
Nepenthes y otras herramientas
Nepenthes (se abre en una pestaña nueva) es un proyecto conocido orientado a los rastreadores de IA. Genera de forma procedural un laberinto infinito de páginas enlazadas entre sí, sin salida real: cada documento contiene numerosos enlaces que vuelven al propio tarpit y texto sintético servido con retardos deliberados, de modo que el rastreador sigue explorando mientras consume ancho de banda y tiempo.
Su web advierte de que no distingue a los rastreadores de buscadores de los de entrenamiento, por lo que el sitio donde se despliegue probablemente desaparecerá de los resultados de búsqueda, y de que puede provocar una carga continua de CPU. Otras aplicaciones de la misma familia:
- iocaine (se abre en una pestaña nueva) identifica y bloquea a los rastreadores con un script personalizable y les sirve contenido basura.
- Pyison (se abre en una pestaña nueva) es un servidor pequeño en Python que ofrece enlaces infinitos a páginas de texto aleatorio.
- Sarracenia (se abre en una pestaña nueva) es un tarpit escrito en Go e inspirado en Nepenthes.
- HellPot (se abre en una pestaña nueva) responde a los bots que ignoran
robots.txtcon un flujo infinito de texto. - Miasma (se abre en una pestaña nueva) es una trampa que sirve contenido envenenado con enlaces que vuelven a ella; su documentación avisa de que desplegarla conlleva riesgo.
Cómo combinar las tres familias
Antes de desplegar cualquiera de ellas conviene decidir qué rastreadores aportan visibilidad, porque una trampa que no los distingue penaliza también la presencia en buscadores y asistentes.
En nuestro servicio de ciberseguridad de aplicaciones analizamos el tráfico automatizado de cada web y definimos qué bots se permiten, cuáles se limitan y cuáles se bloquean.
Fuentes y referencias
- Cloudflare: Trapping misbehaving bots in an AI Labyrinth (marzo de 2025) (se abre en una pestaña nueva)
- Cloudflare: Private Access Tokens, eliminating CAPTCHAs on iPhones and Macs (junio de 2022) (se abre en una pestaña nueva)
- IETF: RFC 9576, The Privacy Pass Architecture (junio de 2024) (se abre en una pestaña nueva)
- IETF: RFC 9577, The Privacy Pass HTTP Authentication Scheme (junio de 2024) (se abre en una pestaña nueva)
- Anubis (TecharoHQ), repositorio en GitHub (se abre en una pestaña nueva)
- Anubis: Why proof of work (se abre en una pestaña nueva)
- Nepenthes (zadzmo.org) (se abre en una pestaña nueva)
- iocaine (se abre en una pestaña nueva)
- Pyison, repositorio en GitHub (se abre en una pestaña nueva)
- Sarracenia, repositorio en GitHub (se abre en una pestaña nueva)
- HellPot, repositorio en GitHub (se abre en una pestaña nueva)
- Miasma, repositorio en GitHub (se abre en una pestaña nueva)
Preguntas frecuentes
¿Qué es un honeypot en una web?
Un honeypot es una página, formulario o servicio expuesto deliberadamente que un usuario legítimo nunca utilizaría. Como cualquier acceso es una señal fuerte de comportamiento automatizado o malicioso, permite clasificar al cliente sin interferir con las personas reales. Una variante son los enlaces invisibles, ocultos mediante CSS, JavaScript o atributos HTML pero presentes en el código fuente, que delatan al rastreador que los sigue.¿Qué es un WAF y qué hace frente a los bots?
Un WAF o cortafuegos de aplicaciones web incorpora motores de detección de bots que analizan varias señales a la vez: reputación de la IP, comportamiento de navegación, frecuencia de peticiones, cabeceras HTTP, cookies o historial de la sesión. Con ellas asigna una puntuación de riesgo y decide si permite el acceso, presenta un desafío o bloquea la conexión.¿Sirve de algo robots.txt si los bots lo ignoran?
El fichero robots.txt, las etiquetas meta y las cabeceras de rastreo funcionan como un convenio de cumplimiento voluntario. Muchos bots no lo respetan, ya sean rastreadores de buscadores, agentes al servicio de usuarios o recopiladores de datos. Con ellos añadir directivas no basta: es el servidor quien debe hacer cumplir la política de acceso, mediante bloqueo directo, decepción o tarpits.¿Qué es un tarpit o pozo de alquitrán?
Es una técnica que, en lugar de bloquear al bot, lo mantiene ocupado el mayor tiempo posible. El servidor responde con contenido aparentemente válido: enlaces que generan más páginas, paginaciones interminables, respuestas que se transmiten muy despacio o cadenas de redirecciones. El objetivo es encarecer el rastreo: el tiempo que el bot dedica a contenido sin valor deja de invertirlo en las páginas reales.¿Los tarpits perjudican al SEO o atrapan a bots legítimos?
Pueden hacerlo. La web de Nepenthes, un tarpit para rastreadores de IA, advierte de que no distingue a los rastreadores de buscadores de los de entrenamiento, por lo que el sitio donde se despliegue probablemente desaparecerá de los resultados de búsqueda, y de que puede provocar una carga continua de CPU. Conviene decidir antes qué rastreadores aportan visibilidad.
