Cómo prevenir el spam y los envíos de bots en los formularios

Frena el spam y los ataques de bots en tus formularios. Técnicas de prevención de bots y cuándo conviene usar CAPTCHA.

Borrador

Revisa los envíos de cualquier formulario sin protección y encontrarás lo mismo: decenas de entradas de spam, contactos falsos, enlaces maliciosos y mensajes sin sentido. No los rellena una persona a mano. Son scripts automáticos controlados por atacantes y spammers. Prevenir el spam y los envíos de bots en los formularios detiene estos ataques antes de que te hagan perder tiempo o dañen tus datos.

El spam es más que una molestia. Ensucia tu base de datos, distorsiona tus estadísticas, llena tu bandeja de entrada y puede ocultar amenazas de seguridad reales. Una prevención eficaz de bots protege tu formulario y mantiene tus datos limpios.

Qué vas a aprender: cómo atacan los bots automáticos a los formularios, por qué las protecciones simples no bastan, qué métodos de prevención de bots funcionan mejor y cómo aplicarlos sin molestar a los visitantes legítimos.

Cómo funcionan los ataques de bots a los formularios

Un bot (abreviatura de robot) es un programa automático que realiza tareas repetitivas. Los bots que atacan formularios hacen cosas como:

  • Rellenar automáticamente todos los campos con texto aleatorio
  • Enviar el formulario miles de veces al día
  • Inyectar enlaces o anuncios en los campos del formulario
  • Buscar vulnerabilidades de seguridad sondeando el formulario
  • Recopilar direcciones de correo para añadirlas a listas de spam

A diferencia de un hacker que puede apuntar a un formulario concreto, los bots atacan miles de formularios a escala. Rastrean internet buscando formularios y, cuando encuentran uno, envían spam automáticamente. Podrías despertarte con 10 000 envíos falsos en tu bandeja de entrada.

Por qué los formularios son vulnerables a los bots

Los formularios aceptan datos de cualquiera

Por diseño, los formularios están abiertos a internet. Cualquiera puede encontrar tu formulario y enviarlo. No hay una verificación inicial de que quien lo envía sea una persona real.

Los formularios son predecibles

Si un bot puede ver tu formulario en el HTML de una página web, puede extraer su estructura y entender qué campos hay que rellenar. Eso convierte a los formularios en objetivos fáciles de automatizar.

La mayoría de los formularios no tiene protección

Muchas webs publican formularios sin ninguna detección de bots. Los bots aprenden enseguida a aprovechar estos objetivos sin defensa.

Por qué no funcionan las protecciones básicas

Ofuscar los nombres de los campos

Algunas personas piensan que ocultar los nombres de los campos confundirá a los bots. Pero los bots pueden deducir los nombres de los campos a partir del HTML o analizando el envío del formulario. No funciona.

Campos trampa (honeypot)

Un campo honeypot es un campo de formulario oculto que los visitantes legítimos nunca ven. Los bots, que no entienden CSS ni atributos ocultos, lo rellenan igualmente. Puedes rechazar los envíos donde el honeypot esté relleno.

Esto funciona contra bots muy simples, pero los bots sofisticados ya conocen los campos honeypot y saben que no deben rellenarlos. Hoy es una defensa débil por sí sola.

Problemas de mates o preguntas sencillas

"¿Cuánto es 2 + 2?" parece algo que un bot no puede responder. Pero la IA actual y las herramientas de OCR (reconocimiento óptico de caracteres) pueden leer y resolver operaciones simples. Esta defensa está anticuada.

Métodos eficaces de prevención de bots

CAPTCHA

CAPTCHA (Completely Automated Public Turing test to tell Computers and Humans Apart) es el método de prevención de bots más habitual. Hay varios tipos:

CAPTCHA de texto: los usuarios resuelven un rompecabezas de texto distorsionado. Es más antiguo y ahora menos eficaz porque la IA puede leer texto distorsionado.

CAPTCHA de imágenes (reCAPTCHA v2): los usuarios marcan casillas o identifican objetos en imágenes. Más fiable que el de texto, pero aún no perfecto. Es el que ves en muchas webs.

CAPTCHA invisible (reCAPTCHA v3): el usuario no ve nada. El sistema analiza su comportamiento (cómo mueve el ratón, a qué velocidad rellena el formulario) para determinar si es humano. Sin fricción para los usuarios reales, pero requiere un backend más sofisticado.

Límite de frecuencia (rate limiting)

El límite de frecuencia restringe cuántas veces la misma dirección IP o cuenta de usuario puede enviar un formulario en un periodo concreto. Si un atacante intenta enviar 1000 formularios en 10 minutos desde la misma IP, el límite de frecuencia lo bloquea tras los 5 primeros envíos en 10 minutos.

El límite de frecuencia es invisible para los usuarios reales (la mayoría de la gente no envía el mismo formulario 20 veces en una hora) pero eficaz contra los bots (que envían repetidamente y a una velocidad sobrehumana).

Verificación del correo

Pide a los visitantes que verifiquen su dirección de correo pulsando un enlace en un correo de confirmación. Los bots normalmente no pueden acceder a bandejas de entrada (o usan direcciones falsas que no existen). Esto elimina muchos envíos de bots.

Inconveniente: crea fricción extra para los visitantes legítimos. Úsalo en formularios de alto valor (altas, creación de cuentas) donde estés dispuesto a añadir un paso más.

Análisis de comportamiento

Analiza cómo interactúan los visitantes con el formulario:

  • ¿Rellenaron el formulario a velocidad sobrehumana (todos los campos en 0,5 segundos)? Probablemente sea un bot.
  • ¿No pusieron el foco en ningún campo (pasaron con el tabulador sin escribir)? Probablemente sea un bot.
  • ¿Rellenaron un campo, lo borraron, lo rellenaron de nuevo y lo borraron otra vez? Probablemente sea una persona.

Esto requiere JavaScript en el formulario para registrar las interacciones del usuario. Es invisible para los usuarios reales y eficaz contra bots simples.

Huella digital del dispositivo

Analiza las características del dispositivo que envía el formulario (tipo de navegador, sistema operativo, resolución de pantalla, zona horaria, etc.). Los bots suelen tener huellas de dispositivo inusuales o incoherentes. Los dispositivos legítimos tienen patrones que parecen humanos.

Es un método sofisticado que requiere servicios de terceros, pero es muy eficaz.

Cuándo usar cada método

Para un formulario de contacto básico

Usa el límite de frecuencia (invisible) más un CAPTCHA si recibes mucho spam. La verificación del correo es opcional.

Para un formulario de suscripción a una newsletter

Usa el límite de frecuencia más la verificación del correo. Así se confirma que el correo es real y se evitan altas masivas de direcciones falsas.

Para un formulario de alto valor (creación de cuenta, pago, etc.)

Usa varias capas: límite de frecuencia, CAPTCHA y verificación del correo. Plantéate el análisis de comportamiento para tener más seguridad.

Para un endpoint de API o acceso programático

Usa autenticación por API (tokens o claves de API) en lugar de CAPTCHA. El CAPTCHA no funciona en las API. El límite de frecuencia es esencial.

El impacto de la prevención de bots en la experiencia de usuario

Una prevención de bots fuerte puede crear fricción para los usuarios reales. Equilibra seguridad y usabilidad:

CAPTCHA: añade unos segundos y un paso extra. Es visible y algo molesto, pero los usuarios lo aceptan ampliamente. Mucha gente lo espera.

Verificación del correo: obliga al usuario a revisar su correo y pulsar un enlace. Más fricción, pero necesaria en acciones de alto valor.

Análisis de comportamiento o límite de frecuencia: invisibles. Ninguna fricción para los usuarios reales.

Buena práctica: usa primero los métodos invisibles (límite de frecuencia, análisis de comportamiento). Muestra un CAPTCHA solo si el envío del formulario parece sospechoso. Así, el 95 % de los usuarios reales nunca ve un CAPTCHA, pero los bots casi siempre sí.

Vigilar los envíos del formulario en busca de spam

Aunque tengas prevención de bots, es posible que se cuele algo de spam. Vigila tus envíos:

  • Revisa los envíos nuevos con regularidad en busca de patrones evidentes de spam
  • Busca envíos con texto sin sentido o con enlaces
  • Controla la frecuencia de envíos (si de repente se dispara, puede que estés bajo ataque)
  • Comprueba desde qué países llegan los envíos (si solo atiendes a EE. UU., los envíos de ciertos países pueden ser sospechosos)

La mayoría de los formularios permite marcar envíos como spam. Úsalo para entrenar cualquier modelo de aprendizaje automático que pueda ayudar a prevenir spam futuro.

Qué hace WEMASY para prevenir el spam

Los formularios de WEMASY incluyen prevención de bots por defecto. Todos los formularios incluyen límite de frecuencia (los envíos múltiples desde la misma IP se frenan) y protección CAPTCHA opcional (reCAPTCHA v3). Puedes activar la verificación del correo en los formularios que lo necesiten. WEMASY también vigila los envíos en busca de patrones de spam y marca las entradas sospechosas.

Todos los formularios llevan protección contra spam. Hay protecciones más avanzadas en los planes superiores. Consulta los detalles de tu plan en la página de precios.

Preguntas frecuentes

¿Evita el CAPTCHA todo el spam?
El CAPTCHA bloquea a la mayoría de los bots, pero no a todos. Los ataques sofisticados pueden saltarse el CAPTCHA con servicios que los resuelven automáticamente. Aun así, el CAPTCHA sube mucho el listón. La mayoría de los spammers pasará a objetivos más fáciles. Combina el CAPTCHA con el límite de frecuencia para proteger mejor.
¿Es mejor reCAPTCHA v3 que v2?
reCAPTCHA v3 es invisible (sin fricción para los usuarios), mientras que v2 muestra una casilla que hay que pulsar. v3 es mejor para la experiencia de usuario, pero exige que te fíes del análisis de Google sobre el comportamiento del usuario. v2 es más transparente porque el usuario hace una elección explícita. Ambos son eficaces. v3 se prefiere en formularios de mucho tráfico.
¿Puedo usar campos honeypot en lugar de CAPTCHA?
Los honeypot bloquean bots simples, pero no los sofisticados. Combina el honeypot con el límite de frecuencia para proteger mejor. Si tienes mucho spam, el honeypot solo probablemente no basta. Añade CAPTCHA o verificación del correo.
¿Y si los usuarios legítimos no pueden resolver el CAPTCHA?
Algunas personas (sobre todo con discapacidad visual) tienen dificultades con los CAPTCHA de imágenes. La mayoría de los servicios, como reCAPTCHA v2, incluyen alternativas de audio. Por accesibilidad, usa el CAPTCHA más cómodo para el usuario y asegúrate de que la alternativa esté disponible. O usa un CAPTCHA invisible (v3) que no requiere ninguna acción del usuario.
¿Cómo sé si mi formulario está sufriendo un ataque de spam?
Vigila los picos repentinos de envíos, sobre todo si contienen patrones evidentes de spam (enlaces, texto sin sentido, texto repetido). Si de pronto recibes 100 envíos en 10 minutos (cuando lo normal son 10 al día), estás sufriendo un ataque. Activa de inmediato una prevención de bots más estricta.

Ponlo en práctica
en tu propia web.

Empieza gratis con WEMASY y crea tu web en pocos minutos.