¿Qué es un «honeypot»?
Un «honeypot» Es una trampa oculta integrada en una página web, normalmente un enlace invisible, un campo de formulario o un punto final señuelo que ningún visitante humano ve ni utiliza jamás. Cualquier agente automatizado que interactúe con ella se delata de inmediato. En la defensa contra los bots, los honeypots aprovechan una sencilla asimetría: un usuario real lee y responde al contenido visible, mientras que un bot procesa todos los elementos del DOM, independientemente de si se muestran o no.
Cómo funcionan los honeypots
Un «honeypot» es un enlace oculto o un campo de formulario invisible para los usuarios (por ejemplo, mediante display:none, visibility:hidden, o una posición situada muy lejos de la pantalla) con la que solo interactúan los bots automatizados, lo que hace que se marquen al instante (DataDome, 2025). El elemento se encuentra en el código HTML, pero se oculta deliberadamente mediante CSS, por lo que ningún usuario real hace clic en él ni lo rellena. Un bot que analice el DOM sin procesar, sin evaluar los estilos calculados, detectará el elemento e interactuará con él, activando así la trampa.
Entre los patrones CSS más habituales que se utilizan para ocultar elementos «honeypot» se incluyen:
display: nonevisibility: hiddenposition: absolute; left: -9999px- Ancho o alto de cero píxeles
Cuando llega una solicitud procedente de ese elemento oculto, el servidor registra la dirección IP, el token de sesión o la huella digital y clasifica al agente como no humano. Algunas implementaciones devuelven una respuesta de éxito falsa para mantener activo al bot, al tiempo que lo bloquean o limitan su frecuencia de acceso de forma silenciosa en segundo plano.
Casos de uso
Pautas a tener en cuenta en los formularios de inicio de sesión y registro. Dentro de un formulario de registro hay un campo de entrada oculto (por ejemplo, un campo «teléfono» o «URL» cuyo estilo hace que no se vea en pantalla). Un bot que rellena todos los campos introduce un valor en ese campo; un usuario humano nunca lo ve. El servidor rechaza o marca el envío basándose únicamente en ese hecho.
Enlaces ocultos en el código HTML de la página. En el código de la página hay un enlace oculto mediante CSS. Los rastreadores que siguen cada <a> La etiqueta en el código HTML sin formato solicitará la URL de señuelo, identificándose ante el servidor antes de acceder a cualquier contenido real.
Terminales Canary. Los administradores de sitios web a veces incluyen direcciones URL únicas que no ofrecen ningún contenido real. Cualquier tráfico dirigido a dichas direcciones URL confirma la existencia de un rastreo automatizado, que suele utilizarse junto con comprobaciones de reputación de IP y limitaciones de tráfico.
En el caso de los flujos de automatización web, las trampas «honeypot» constituyen uno de los métodos de detección pasiva más eficaces, precisamente porque no requieren ningún desafío visible. Un rastreador que carga completamente una página y evalúa la visibilidad de los elementos antes de interactuar (el enfoque que utiliza una API de renderizado cuando devuelve el código HTML calculado) tiene muchas menos probabilidades de activar una trampa «honeypot» que una herramienta que analiza directamente el código de marcado sin procesar.
Preguntas frecuentes
Para evitar las trampas de miel, los rastreadores deben comprobar si existen indicadores de invisibilidad en CSS, tales como display:none, visibility:hidden, position:absolute;left:-9999px, o dimensiones nulas o mínimas antes de seguir un enlace o rellenar un campo (Scrapfly, 2025). El uso de un entorno de navegador que evalúe los estilos generados reduce este riesgo en comparación con el análisis sintáctico del HTML sin procesar.
No. Un CAPTCHA es una prueba visible que interrumpe al usuario y le pide que demuestre que es humano. Un «honeypot» es invisible y pasivo; nunca molesta a un usuario real y solo detecta a los bots que interactúan con elementos ocultos. Ambos son técnicas contra los bots, pero operan en diferentes niveles de la pila de detección.
Sí. Un navegador sin interfaz gráfica que muestra una página pero omite la evaluación del CSS calculado puede seguir enlazando a enlaces ocultos o rellenar campos ocultos. Al llamar a getComputedStyle() Comprobar un elemento antes de cualquier interacción es la forma más fiable de confirmar que el usuario realmente lo ve.
Un campo típico de «honeypot» tiene el mismo aspecto que una entrada normal: <input type="text" name="website" style="display:none" tabindex="-1" autocomplete="off">. El nombre del campo suele ser verosímil (como «teléfono», «url» o «sitio web») para atraer a los bots que buscan campos que rellenar.