Definición
El rate limiting es un control de gestión de tráfico que impone un techo a cuán seguido un cliente puede realizar una acción dentro de una ventana de tiempo especificada. Cuando el cliente excede el umbral, el servidor responde con error —típicamente HTTP 429 Too Many Requests— o descarta silenciosamente las solicitudes excedentes. La ventana se resetea o por agenda fija (un contador de “ventana fija”) o de manera rolling (contador de “ventana deslizante”), donde la deslizante provee enforcement más suave que evita la explotación en los bordes.
El rate limiting es uno de los controles de seguridad web más viejos y universalmente desplegados. OWASP (Open Web Application Security Project) lo recomienda como defensa primaria contra ataques de fuerza bruta, credential stuffing y abuso automatizado de formularios. Cloudflare lo ofrece como feature de su producto WAF, con reglas configurables por path de URL, método HTTP, IP, valor de cookie y header. AWS WAF, Azure Front Door y Google Cloud Armor proveen capacidades equivalentes.
Cómo funciona el rate limiting
Un rate limiter mantiene un contador para cada identificador único de cliente, lo más común la IP de origen, pero a veces un identificador de cuenta, una API key o una cookie de sesión. Cuando llega una solicitud, el servidor chequea el valor actual del contador. Si está bajo el umbral, la solicitud se permite y el contador se incrementa. Si está en o sobre el umbral, la solicitud se rechaza con respuesta 429 o se maneja según la política configurada.
El almacenamiento del contador se implementa típicamente en Redis o Memcached para habilitar lookups rápidos y distribuidos entre varias instancias, requisito para apps escaladas horizontalmente. La documentación de Cloudflare describe enforcement de rate-limit a nivel red edge, donde las reglas se aplican antes de que las solicitudes lleguen al origen, distribuyendo la reducción de carga por la infraestructura global de Cloudflare.
Parámetros comunes de rate limiting en contexto de concurso:
- Votos por IP por ventana de tiempo: la configuración más común. Ejemplo: no más de 1 voto por IP por ventana de 24 horas.
- Votos por cuenta por concurso: aplicado en la capa de aplicación usando el identificador de cuenta autenticada como llave.
- Registros por IP por hora: aplicado en el endpoint de creación de cuenta para frenar el farming bot-driven.
- Llamadas API por token por minuto: relevante para plataformas que exponen una API pública de votación.
El rate limiting también puede aplicarse de manera probabilística: por ejemplo, aplicando límites más estrictos a solicitudes con señales conductuales o de huella que sugieran automatización, mientras se aplican límites más laxos a sesiones con indicadores humanos de alta confianza.
Dónde aparece
El rate limiting es un control ubicuo presente en virtualmente toda plataforma web. Los operadores de concurso lo encuentran más directamente en tres puntos: el endpoint de envío de voto, el formulario de registro de cuenta y (si se exige confirmación por correo) el pipeline de envío de email. Las integraciones API encuentran rate-limits en los endpoints de la plataforma.
Para los usuarios finales, el rate limiting se manifiesta más visiblemente como un error HTTP 429 o un mensaje específico de plataforma como “Ya votaste” o “Por favor espera antes de volver a votar”. Muchas plataformas implementan rate-limit suave —aceptando la solicitud pero descartando silenciosamente el duplicado— para no señalar la existencia del control a posibles abusadores.
La documentación de rate-limiting de Cloudflare WAF nota que las reglas se pueden setear para loguear sin bloquear durante una fase de análisis y luego cambiar a bloqueo una vez calibrado el umbral apropiado. Este enfoque en dos fases ayuda a evitar bloquear accidentalmente oleadas legítimas.
Ejemplos prácticos
Una competencia de premios para food bloggers configura su sistema con rate-limit por IP de 24 horas. Durante la última semana, un votante intenta enviar 50 votos en sucesión rápida desde la misma IP residencial. El primero se acepta; las 49 solicitudes siguientes reciben 429. El navegador del votante muestra un mensaje explicando la limitación de una vez por día.
Una plataforma SaaS que aloja cientos de concursos simultáneos usa el rate-limit de Cloudflare en el edge. Un bot apuntando a un concurso con 10.000 solicitudes por minuto es throttled a un máximo de 60 por minuto en el edge, con las solicitudes excedentes nunca llegando al origen. Los logs del origen muestran solo el tráfico throttled y el uso de CPU del lado servidor permanece intacto.
Una revisión de seguridad OWASP de un microsite de concurso a medida de una startup identifica la ausencia de rate-limit en el endpoint de reenvío de confirmación como vulnerabilidad: un atacante podría inundar la bandeja de una víctima disparando miles de correos. La revisión recomienda implementar un rate-limit de 3 reenvíos por dirección por hora, consistente con la guía de prevención de fuerza bruta de OWASP.
Conceptos relacionados
La detección de anomalías es un complemento más sofisticado al rate-limit: donde el rate-limit impone umbrales duros, la detección de anomalías identifica desviaciones respecto a un baseline conductual aprendido, atrapando campañas de fraude que se mantienen justo bajo los límites fijos. La diversidad de ASN se vuelve relevante cuando el rate-limit se aplica por IP y un mal actor distribuye sus solicitudes entre muchas IPs para mantenerse bajo los umbrales por IP: el análisis a nivel ASN detecta el patrón agregado. reCAPTCHA v3 provee un score conductual de riesgo que se puede combinar con rate-limit para aplicar límites más ajustados selectivamente a sesiones que puntean como potencialmente automatizadas.
Limitaciones / advertencias
El rate-limit basado en IP es menos efectivo en entornos con CGNAT, donde una sola IP pública puede representar a cientos de suscriptores móviles legítimos. Un rate-limit por IP de 1 voto por 24 horas evitaría incorrectamente que la mayoría de esos suscriptores votara. Por eso el rate-limit en plataformas de concurso debe combinarse con deduplicación basada en cuenta o cookie cuando las audiencias móviles son significativas. Además, los rate-limits seteados muy agresivos pueden degradar la experiencia para votantes legítimos llegando desde redes compartidas como campus universitarios, oficinas corporativas o grandes hotspots Wi-Fi públicos.