Escenario: 500 envíos en diez minutos
Son las 14:37. Su formulario de contacto recibe un primer envío. Luego otro. Luego diez, luego cien. A las 14:47, su dashboard muestra 500 nuevos leads — todos con datos inválidos, todos procedentes del mismo rango de direcciones IP, todos generados por un script ejecutándose en bucle.
Es un ataque por volumen. No busca robar sus datos. Busca saturar su base, agotar sus cuotas, ahogar sus leads reales bajo un diluvio de falsos. Sin protección, solo se da cuenta una vez que el daño está hecho.
Este tipo de ataque es banal. No requiere ninguna competencia particular: un script Python de veinte líneas basta. La pregunta no es si su formulario será objetivo, sino cuándo.
Este artículo le explica cómo Prospect Hub responde a este problema, capa por capa — sin bloquear a sus verdaderos clientes.
El rate limiting: el portero de la entrada
Imagine un portero delante de un club nocturno. No mira únicamente si tiene aspecto sospechoso. También observa la frecuencia: si la misma persona intenta entrar veinte veces en cinco minutos, algo no va bien, sea cual sea su apariencia.
El rate limiting funciona exactamente con esta lógica.
Limitación por dirección IP
Cada dirección IP tiene una cuota de envíos autorizados en una ventana deslizante. Concretamente: una dirección IP no puede enviar más de N formularios por hora. Si supera este umbral, las solicitudes siguientes se rechazan — o se marcan como sospechosas — durante un tiempo determinado.
Este enfoque cubre la gran mayoría de ataques por volumen, porque los scripts simples usan una sola dirección IP o un rango restringido. Un humano, por rápido que sea, nunca enviará un formulario veinte veces por hora.
Limitación por clave API
La limitación por IP protege contra abusos externos. La limitación por clave API protege contra abusos internos — o más precisamente, contra el compromiso de una clave.
Cada sitio cliente dispone de su propia clave API (pk_xxxxx). Esta clave está asociada a una cuota global. Si se expone accidentalmente en un código fuente público o se usa de forma abusiva, la clave será limitada antes de que el impacto se vuelva crítico. Los otros clientes no se ven afectados; sus leads reales siguen llegando normalmente.
Estos dos niveles funcionan en paralelo. Un atacante que eludiera el límite por IP usando varias direcciones tropezaría igualmente con el límite por clave API.
El dashboard de reputación IP
El rate limiting es una barrera automática. Pero toda barrera automática genera falsos positivos. Un comercial que prueba su propio formulario en bucle, una herramienta de monitoreo que verifica la disponibilidad del formulario, una red de empresa en la que varios empleados comparten la misma IP de salida: tantas situaciones legítimas que pueden disparar una alerta.
Por eso Prospect Hub incluye un dashboard de reputación IP accesible desde la interfaz de administración.
Lo que ve
La vista lista las direcciones IP que han disparado alertas, con para cada una:
- el número de envíos en la ventana de tiempo
- el score de reputación calculado (combinación de frecuencia, User-Agent, comportamiento HiveProtect)
- el estado actual: vigilada, bloqueada temporalmente, bloqueada manualmente
El botón “desbloquear”
Si reconoce una IP legítima — un socio, su propio equipo, una herramienta de test — puede desbloquearla en un clic. El score se reinicia, los envíos futuros desde esa dirección se aceptan nuevamente con normalidad.
Esta acción queda registrada en los logs. Sabe quién desbloqueó qué, y cuándo.
HiveProtect: la huella invisible
El rate limiting analiza los volúmenes. HiveProtect analiza los comportamientos.
Cuando un usuario carga su formulario, un script JavaScript mide discretamente varias señales:
El tiempo de rellenado. Un humano que rellena un formulario raramente tarda menos de cinco segundos. Lee las etiquetas, escribe su nombre, pasa de un campo a otro. Un bot que inyecta los valores directamente en el DOM generalmente tarda menos de un segundo — frecuentemente unos milisegundos.
Las interacciones del ratón y teclado. Un humano mueve su ratón, hace clic, comete errores, los corrige. Un bot no genera ningún movimiento de ratón, ningún evento intermedio. HiveProtect mide la presencia o ausencia de estos eventos.
La secuencia de focus. Un humano navega en el orden de los campos, a veces vuelve atrás. Un bot frecuentemente rellena todos los campos simultáneamente, sin respetar el orden natural del formulario.
Estos datos no salen del navegador en forma legible. Generan una huella comprimida que se envía con el envío. Del lado del servidor, esta huella se decodifica y contribuye al score final del lead.
Detección de User-Agents sospechosos
Un User-Agent es el identificador que el cliente HTTP envía al servidor para presentarse. Los navegadores modernos envían cadenas largas y precisas. Los scripts de ataque, en cambio, envían frecuentemente User-Agents reveladores.
Prospect Hub bloquea o penaliza automáticamente los envíos procedentes de:
curlywget(herramientas de línea de comandos)python-requests,python-urllib(bibliotecas HTTP Python)axios,node-fetchsin contexto de navegador identificado- Cadenas vacías o cadenas genéricas (
bot,spider,scraper) - Navegadores headless detectables (
HeadlessChrome,PhantomJS)
Tabla de síntesis: qué capa bloquea qué
| Tipo de ataque | Capa que interviene |
|---|---|
| Script simple desde una sola IP | Rate limiting por IP |
| Script distribuido con clave API comprometida | Rate limiting por clave API |
| Bot sin User-Agent de navegador | Detección User-Agent |
| Bot rápido con User-Agent falsificado | HiveProtect (tiempo de rellenado < 1s) |
| Bot sofisticado con retardo artificial | HiveProtect (ausencia de interacciones ratón) |
| Formulario enviado fuera de navegador | HiveProtect (huella faltante) + User-Agent |
| Volumen bajo pero repetido en el tiempo | Reputación IP (acumulación en ventana deslizante) |
Ninguna capa es infalible sola. Es su combinación lo que hace el ataque económicamente no rentable para el atacante.
Los indicadores visuales en el dashboard de leads
Cada lead mostrado en su pipeline lleva indicadores de confianza. Un lead limpio no muestra nada particular. Un lead sospechoso muestra badges de colores que le indican lo que se ha detectado:
- IP sospechosa: la dirección IP tenía un score de reputación degradado al momento del envío
- Comportamiento bot: la huella HiveProtect indica un rellenado no humano
- User-Agent inválido: la solicitud procedía de un cliente HTTP no navegador
- Rate limit alcanzado: el envío fue aceptado a pesar de un exceso de cuota (modo degradado)
Haciendo clic en un lead, accede al detalle completo: score de cada señal, valor del User-Agent recibido, tiempo de rellenado medido, estado de la IP al momento del envío. Nada es opaco.
Para ir más allá
El rate limiting y la reputación IP son dos de las nueve capas de protección que Prospect Hub pone en marcha en cada formulario. Si desea entender el conjunto del dispositivo, lea nuestro artículo sobre las 9 capas de protección antispam.
Para una comparación técnica entre honeypot, CAPTCHA y protección comportamental, consulte nuestro comparativo anti-bot. Y si aún no ha conectado su formulario a Prospect Hub, la guía de integración le acompaña paso a paso.
Finalmente, para entender por qué las protecciones clásicas ya no bastan frente a los bots modernos alimentados por IA, nuestro artículo sobre el spam de formularios y la IA plantea el problema de fondo.
¿Quiere probar la protección en sus propios formularios?
Prospect Hub está disponible sin compromiso. Conecte su primer formulario en menos de cinco minutos y observe en tiempo real lo que su formulario recibe realmente — y lo que se filtra antes de alcanzar su pipeline.