# Anti-spam en formularios: por qué la domain allowlist es la mejor opción

_Published: 2026-10-30_

Si tu formulario público en tu web recibe 50 submissions de bots al día, tu CRM se llena de basura y los comerciales pierden tiempo cualificando lo que no existe. reCAPTCHA ayuda pero molesta al usuario. Una domain allowlist bien configurada es mejor solución. Te lo contamos.

**En 1 frase:** Una domain allowlist restringe el envío de formularios solo desde dominios autorizados, bloqueando bots que envían desde IPs aleatorias sin afectar la experiencia del usuario real.

## El problema real de los bots en formularios públicos

Cualquier formulario público en tu web es un blanco para bots automatizados. Los datos típicos de una web con tráfico medio muestran que entre el 10% y el 30% de las submissions diarias son bots, no usuarios reales. El porcentaje sube en webs con buen SEO o con anuncios pagados, donde los bots aprovechan el tráfico atraído.

Las motivaciones de los bots son varias y todas perjudiciales:

- Spam de SEO: rellenan campos libres con links a webs que quieren posicionar. Esperan que el CRM o el sistema reenvíe el contenido por email a algún humano.
- Phishing reconocimiento: testan emails con prefijos comunes (info@, admin@) para encontrar bandejas activas y enviar phishing posteriormente.
- Reconocimiento de sistema: prueban si el formulario tiene vulnerabilidades de SQL injection, XSS o errores que filtren información.
- Carga maliciosa: rellenan miles de submissions para saturar la base de datos o agotar cuotas de email transaccional.
- Generación de leads falsos: competidores o entidades que quieren ensuciar tu CRM con datos basura.

El coste real para tu empresa: CRM ensuciado con contactos que no existen, comerciales perdiendo tiempo en intentar contactar a leads inventados, sesgo en métricas de conversión (parece que captas más cuando no es real), costes adicionales en cuotas de email transaccional, y exposición a phishing si algún usuario interno responde a un bot.

## Por qué reCAPTCHA y similares son insuficientes

La defensa tradicional contra bots es reCAPTCHA de Google. En 2026, esta solución tiene problemas estructurales que la hacen poco efectiva:

- Bots modernos saltan reCAPTCHA v2 fácilmente: existen servicios comerciales (2Captcha, AntiCaptcha) que resuelven captchas con humanos en países low-cost por 1-2 USD por mil resoluciones. Cualquier bot serio los usa.
- reCAPTCHA v3 da score pero con falsos positivos altos: rechaza usuarios reales con configuraciones de navegador poco habituales (modo incognito, VPN, ad-blockers agresivos). Pierdes leads legítimos.
- Molesta al usuario real: las imágenes de "elige los semáforos" generan fricción y bajan conversión entre 5-15% según diseño.
- Cookies de Google añaden complejidad RGPD: necesitas consentimiento de cookies de tercera parte, banner adicional, riesgo legal por transferencia de datos a EE.UU.
- Dependencia de servicio externo: si Google cambia condiciones de uso o políticas, tu protección se ve afectada sin que puedas hacer nada.
- Carga performance: el script de reCAPTCHA añade 50-150 KB a tu página y latencia adicional.

No es que reCAPTCHA sea inútil; es que como única defensa es insuficiente y costosa en términos de UX y privacidad.

## Domain allowlist: la solución elegante y efectiva

La domain allowlist (lista blanca de dominios) es una técnica que aprovecha el header HTTP Origin/Referer que el navegador envía con cada submission. La premisa: tu formulario solo debería recibir submissions desde los dominios donde tú lo has embebido. Si un bot llama directamente al endpoint del formulario desde su propia infraestructura, su header de origen es distinto y la submission se rechaza.

### Cómo funciona técnicamente

1. En la configuración del formulario, defines la lista de dominios autorizados: `tuempresa.com`, `blog.tuempresa.com`, `landing.tuempresa.com`.
2. Cuando llega una submission, el servidor verifica el header HTTP `Origin` o `Referer`.
3. Si el origen coincide con uno de los dominios autorizados, procesa la submission normalmente.
4. Si no coincide, la submission se descarta silenciosamente (HTTP 200 al bot para no dar pistas, pero no se procesa).

### Ventajas frente a CAPTCHA

- Cero fricción para usuarios reales: no ven nada extra, conversión intacta.
- Cero cookies de terceros: sin problemas RGPD añadidos.
- Sin dependencia de servicio externo: control total tuyo.
- Sin coste por verificación: no pagas por cada submission verificada.
- Efectivo contra el 90%+ de bots: la mayoría no se molesta en falsificar el header Origin desde un dominio específico.
- Sin impacto en SEO ni performance: ningún script extra que cargue.

## Cómo configurar una domain allowlist correctamente

La configuración bien hecha requiere atención a algunos detalles:

### Inventario de dominios donde está embebido el formulario

Antes de activar la allowlist, lista exhaustivamente dónde tienes embebido el formulario:

- Dominio principal: `tuempresa.com`.
- Subdominios usados: `blog.tuempresa.com`, `www.tuempresa.com`.
- Landings de campañas: `landing-q2.tuempresa.com`.
- Dominios alternativos por país: `tuempresa.fr`, `tuempresa.de`.
- Dominios de tests/staging: `staging.tuempresa.com` (deshabilitar en producción).

### Wildcards para flexibilidad

Si tienes muchos subdominios y crear nuevos es habitual, usa wildcards: `*.tuempresa.com`. Pero úsalo con cuidado: si alguien crea un subdominio que no debería tener el formulario, queda autorizado.

### Modo de bloqueo

Dos opciones según necesidad:

- "Solo dominios autorizados": rechaza cualquier dominio no listado. Máxima seguridad. Recomendado.
- "Permitir todos por defecto, bloquear lista negra": permite todos los dominios excepto los listados. Menos seguro; útil solo si no sabes dónde está embebido.

### Testing inicial

Tras configurar, prueba enviar el formulario desde cada uno de los dominios autorizados. Asegúrate de que todas las submissions legítimas funcionan. Cualquier rotura aquí es muy mal:

- Test desde dominio principal con datos reales.
- Test desde cada subdominio donde está embebido.
- Test simulando bot desde herramienta externa para validar que se rechaza.

## Defensa en profundidad: combinaciones que funcionan

La domain allowlist es muy efectiva pero no es la única defensa. Las webs serias combinan varias técnicas según el contexto:

### Honeypot

Campo de formulario invisible para humanos (vía CSS) pero detectable por bots que parsean HTML. Cuando un bot rellena ese campo invisible, sabes que es bot. REPLAI Forms tiene honeypot activado por defecto. Coste: cero. Efectividad: muy alta contra bots simples.

### Rate limiting por IP

Limita el número de submissions por IP en un período (por ejemplo, máximo 5 por hora). Detecta intentos masivos. Útil sobre todo para formularios sin allowlist (compartidos por LinkedIn o redes sociales).

### Validación de campos

Si el email parece falso (dominios de throwaway, sintaxis sospechosa), rechazo automático. Si el teléfono tiene formato imposible, rechazo. Si los campos libres contienen URLs (señal típica de spam), revisión manual o rechazo.

### Análisis de comportamiento

Submissions completadas en menos de 3 segundos suelen ser bots. Submissions sin movimiento de ratón previo idem. Detectable y filtrable.

### reCAPTCHA solo para casos extremos

Reserva reCAPTCHA para formularios donde no puedes usar allowlist (compartidos públicamente sin contexto) y donde el rate limit no es suficiente. No como defensa principal.

## Cómo lo gestiona REPLAI Sales

En la configuración del formulario en REPLAI Sales tienes el toggle "Restringir dominios" y añades la allowlist directamente. Características incluidas:

- Allowlist con wildcards: `*.tuempresa.com` para flexibilidad.
- Modo "Solo dominios autorizados": máxima seguridad por defecto.
- Honeypot activado por defecto: campo invisible que descarta bots simples.
- Rate limiting configurable por IP y por intervalo.
- Validación de campos email y teléfono con detección de patrones sospechosos.
- Log de submissions descartadas: ves cuántos bots se bloquean y de qué dominios provienen, para auditar la efectividad.
- Excepciones manuales: si un partner usa tu formulario embebido en su web, puedes añadirlo a la allowlist específicamente.
- Plantillas de configuración: para formularios principales, formularios compartidos públicamente, formularios para uso interno solo.

La configuración inicial son 2-3 minutos por formulario. El mantenimiento es prácticamente cero salvo cuando añades nuevos dominios donde embebes el formulario.

## Preguntas frecuentes

¿Pierdo submissions legítimas con la allowlist activada?No, mientras la allowlist esté bien configurada. El riesgo aparece si olvidas añadir un dominio donde está embebido el formulario. Test inicial obligatorio: envía submission real desde cada dominio autorizado y verifica que llega. Tras eso, monitoriza el log de descartes durante el primer mes para detectar falsos positivos.

¿Puedo combinar domain allowlist con reCAPTCHA para máxima seguridad?Sí, es defensa en profundidad. Pero en la mayoría de casos con allowlist + honeypot basta y evitas la fricción y problemas RGPD del reCAPTCHA. Reserva reCAPTCHA para formularios muy expuestos o donde la allowlist no es viable (compartidos públicamente sin contexto de dominio).

¿Y si necesito formularios totalmente abiertos para compartir por LinkedIn o redes?En esos casos, la allowlist por dominio no aplica (el origen depende del navegador del usuario). Para esos formularios, combina rate limiting agresivo + honeypot + validación de campos + reCAPTCHA si el volumen es alto. Acepta que tendrás más spam pero con mecanismos para limitarlo.

¿REPLAI ofrece honeypot también por defecto?Sí, activado en todos los formularios. Campo invisible para humanos (hidden vía CSS, no visible en pantalla pero sí en el HTML) que solo bots rellenan automáticamente. Submissions con el honeypot rellenado se descartan silenciosamente. Coste cero, efectividad muy alta contra bots simples que parsean HTML sin renderizar.

### ¿Quieres automatizar sin tocar código?

REPLAI Automations dispara workflows con triggers, condiciones y acciones nativas. Plantillas listas para usar en RRHH, ventas y atención.

[Prueba REPLAI 30 días gratis](https://app.replai.net/signup)
[Conocer REPLAI Automations →](https://replai.net/automations/)
