Cómo detener el spam de formularios: 7 métodos probados comparados
El spam de formularios es un problema universal. Todos los formularios de acceso público en la web son atacados por bots que envían enlaces, contenido de phishing, datos extraídos o prueban información de pago robada. Ningún sitio es demasiado pequeño para ser objetivo.
Esta guía compara siete métodos antispam probados, explica cómo funciona cada uno y recomienda la mejor combinación para diferentes escenarios.
Método 1: Campo Honeypot
Un honeypot es un campo de formulario oculto que los usuarios legítimos nunca ven. Los bots que llenan cada campo que encuentran lo completarán, revelándose como automatizados.
Implementation:
<input type="text" name="botcheck" style="position: absolute; left: -9999px; opacity: 0;" tabindex="-1" autocomplete="off"/>Cómo funciona: The field is positioned off-screen using CSS (not display: none or type="hidden", which bots check for). If the field has a value on submission, it is a bot.
| Ventajas | Contras |
|---|---|
| Cero fricción para usuarios reales | Los bots sofisticados pueden detectar campos ocultos |
| Sin dependencias externas | No detecta spammers humanos |
| Funciona sin JavaScript |
Effectiveness: Atrapa entre el 70 y el 80 % de los bots básicos. Primera capa imprescindible.
Método 2: Desafío CAPTCHA
Los CAPTCHA presentan un desafío que los humanos pueden resolver pero los bots no.
Options:
| Servicio | Tipo | Privacidad |
|---|---|---|
| Cloudflare Turnstile | Invisible/desafío administrado | Alto (sin seguimiento) |
| Google reCAPTCHA v3 | Invisible basado en puntajes | Baja (seguimiento de Google) |
| Google reCAPTCHA v2 | Rompecabezas de imágenes | Baja |
| hCaptcha | Rompecabezas de imágenes | Medio |
Implementación (torniquete):
<div class="cf-turnstile" data-sitekey="YOUR_SITE_KEY"></div><script src="https://challenges.cloudflare.com/turnstile/v0/api.js" async defer></script>| Ventajas | Contras |
|---|---|
| Atrapa bots sofisticados | Agrega fricción (especialmente rompecabezas de imágenes) |
| Funciona contra spammers humanos | Requiere servicio externo |
| Alta precisión | Puede bloquear a los usuarios con necesidades de accesibilidad |
Effectiveness: Atrapa más del 95% de los bots cuando se configura correctamente. Lo mejor para formularios de alto tráfico.
Método 3: Restricción de dominio
Restringir los envíos de formularios para que solo provengan del dominio de su sitio web.
Cómo funciona: The form backend checks the Origin or Referer header on each submission and rejects requests from other domains.
| Ventajas | Contras |
|---|---|
| Impide el abuso de terminales | Puede ser falsificado (pero la mayoría de los bots no se molestan) |
| Cero fricción del usuario | Bloquea envíos legítimos desde extensiones del navegador |
| No se necesitan cambios de código |
Effectiveness: Evita que otros sitios y scripts usen su endpoint de formulario. Esencial para todos los formularios.
Método 4: Limitación de velocidad
Limitar el número de envíos por dirección IP dentro de un período de tiempo.
Cómo funciona: El backend de formularios rastrea los envíos por IP y rechaza las solicitudes que exceden el umbral (por ejemplo, 5 envíos por hora por IP).
| Ventajas | Contras |
|---|---|
| Detiene los ataques de inundación | Las IP compartidas (oficinas, VPN) pueden verse afectadas |
| Cero fricción del usuario | No detiene las botnets distribuidas |
| Aplicación del lado del servidor |
Effectiveness: Defensa esencial contra ataques de inundaciones. Funciona mejor combinado con otros métodos.
Método 5: Verificaciones basadas en el tiempo
Rechace los envíos que se realicen demasiado rápido después de cargar la página.
Cómo funciona: Registre cuándo se cargó la página y compárelo con el tiempo de envío. Los bots suelen enviar formularios a los milisegundos de cargar la página.
<input type="hidden" name="_timestamp" value="" /><script> document.querySelector('input[name="_timestamp"]').value = Date.now();</script>El servidor rechaza los envíos en los que el tiempo transcurrido está por debajo de un umbral (por ejemplo, 3 segundos).
| Ventajas | Contras |
|---|---|
| Atrapa bots rápidos | Requiere JavaScript |
| Cero fricción para usuarios reales | Los usuarios de red lentos pueden generar falsos positivos |
| Fácil de implementar |
Effectiveness: Capta bots automatizados que envían mensajes instantáneamente. Buena capa suplementaria.
Método 6: Validación de correo electrónico y bloqueo de correo electrónico desechable
Rechazar envíos de direcciones de correo electrónico desechables o temporales.
Cómo funciona: El backend de formularios compara el dominio de correo electrónico enviado con una lista de proveedores de correo electrónico desechables conocidos (mailinator.com, guerrillamail.com, etc.).
| Ventajas | Contras |
|---|---|
| Reduce los clientes potenciales de baja calidad | Algunos usuarios legítimos usan correos electrónicos desechables |
| Mejora la capacidad de entrega | Se debe mantener la lista |
| Aplicación del lado del servidor |
Effectiveness: Útil para formularios de generación de clientes potenciales donde la calidad del correo electrónico es importante.
Método 7: Filtrado de contenido
Escanear el contenido enviado en busca de patrones de spam conocidos.
Cómo funciona: Verifique los valores de los campos para detectar indicadores comunes de spam: URL excesivas, frases de spam conocidas, caracteres no latinos en formularios solo en inglés o contenido que coincida con plantillas de spam conocidas.
| Ventajas | Contras |
|---|---|
| Atrapa spammers humanos | Riesgo de falsos positivos |
| Reglas personalizables | Requiere ajuste continuo |
| Aplicación del lado del servidor |
Effectiveness: Útil como filtro complementario para formularios que reciben spam humano.
Combinaciones recomendadas
Sitio de poco tráfico (menos de 1000 visitas/mes)
- Campo Honeypot
- Restricción de dominio
- Limitación de velocidad
Esta combinación detecta más del 95% del spam sin fricción para el usuario.
Sitio de tráfico medio (1.000-10.000 visitas/mes)
- Campo Honeypot
- Restricción de dominio
- Limitación de velocidad
- Cloudflare Turnstile (modo invisible)
El torniquete en modo administrado solo muestra un desafío cuando se detecta actividad sospechosa, por lo que la mayoría de los usuarios reales no ven nada.
Sitio de alto tráfico (más de 10 000 visitas/mes)
- Campo Honeypot
- Restricción de dominio
- Limitación de velocidad
- Cloudflare Turnstile (desafío administrado)
- Comprobaciones basadas en el tiempo
- Bloqueo de correo electrónico desechable
Máxima protección con mínima fricción.
Resumen
Ningún método antispam es suficiente por sí solo. Comience con un campo honeypot y una restricción de dominio en cada formulario. Agregue limitación de velocidad para todas las formas de producción. Capa de CAPTCHA (preferiblemente Turnstile) para sitios de tráfico medio y alto. Utilice comprobaciones basadas en el tiempo y filtrado de contenidos como defensas complementarias. Un servicio de backend de formularios como FormsFort implementa todas estas capas automáticamente.
Preguntas frecuentes
¿Cuál es la forma más eficaz de detener el spam de formularios?
Un enfoque en capas funciona mejor: combine un campo honeypot, restricción de dominio, limitación de velocidad y un desafío CAPTCHA. Ningún método detecta todo el spam, pero juntos bloquean más del 99% de los envíos automáticos.
¿Qué es un campo honeypot?
Un campo de honeypot es una entrada de formulario oculta que los usuarios legítimos nunca ven ni completan. Los bots que llenan automáticamente cada campo lo completarán, permitiendo al servidor identificar y rechazar el envío como spam.
¿Es Turnstile mejor que reCAPTCHA?
Cloudflare Turnstile generalmente se prefiere para la prevención de spam de formularios porque respeta la privacidad, no requiere rompecabezas de imágenes y tiene una experiencia de usuario con menor fricción. reCAPTCHA v3 también es invisible pero depende del seguimiento de Google.
¿Puedo bloquear el spam sin un CAPTCHA?
Sí. Una combinación de campos de honeypot, restricciones de dominio, limitación de velocidad y comprobaciones basadas en el tiempo detecta la mayor parte del spam sin ningún desafío para el usuario. Agregue un CAPTCHA para formularios con mucho tráfico donde los bots son más sofisticados.
¿Por qué los bots apuntan a mi formulario de contacto?
Los bots rastrean la web en busca de endpoints de formularios para enviar enlaces, contenido de phishing o probar tarjetas de crédito robadas. Cualquier formulario de acceso público es un objetivo independientemente del tráfico del sitio.
Comience gratis
¿Listo para agregar formularios a su sitio estático?
No se requiere backend. Apunte su formulario HTML a FormsFort y comience a recibir envíos en minutos.