Saltar al contenido principal

Limitación de velocidad - Control de tráfico API y web

Lectura de 2 min aprox.

La limitación de tasa (rate limiting) es un mecanismo que establece un límite superior al número de solicitudes aceptadas dentro de un intervalo de tiempo determinado, protegiendo así un servicio frente a la sobrecarga y el abuso. Se adopta ampliamente para mitigar los ataques DDoS, frenar los ataques de fuerza bruta y garantizar un uso justo de las API. A partir de 2025, con la expansión de la economía de las API, la limitación de tasa se ha consolidado como un requisito fundamental de la seguridad de las API.

Casos de uso reales

«Como no habíamos configurado límites de tasa en la API, un solo cliente enviaba 500 solicitudes por segundo, retrasando las respuestas de los demás usuarios. Tras introducir un límite de cubo de tokens de 50 solicitudes por segundo con una tolerancia de ráfaga de 100, los tiempos de respuesta se han estabilizado para todos los usuarios.»

Flujo de limitación de tasa

Recibir la solicitud del cliente
Limitador de tasa (verificar el contador)
Dentro del límite
200 OK (procesar la solicitud)
Límite superado
429 Too Many Requests

Algoritmos principales

El método de ventana fija mide las solicitudes dentro de un marco temporal fijo, como «hasta 100 solicitudes por minuto». Es sencillo de implementar, pero presenta el problema de que las ráfagas de solicitudes se concentran en los límites de la ventana. El método de ventana deslizante mide sobre el marco temporal más reciente, mitigando el problema de las ráfagas. El método de cubo de tokens es un modelo en el que los tokens se reponen a una velocidad constante y cada solicitud consume un token, lo que permite ráfagas breves al tiempo que limita la tasa media.libros de diseño de API (Amazon) permiten aprender esto de forma sistemática.

Escenarios de implementación

En un punto de acceso de inicio de sesión, los intentos de inicio de sesión desde la misma dirección IP se limitan a «hasta 10 veces en 5 minutos» para frenar el relleno de credenciales. Para las API se establecen límites por niveles, como «1.000 solicitudes por hora» para los usuarios autenticados y «100 solicitudes por hora» para los no autenticados. Cuando se supera el límite, se devuelve una respuesta HTTP 429 (Too Many Requests) junto con una cabecera Retry-After para indicar al cliente un tiempo de espera adecuado. Combinar la gestión de claves de API con la limitación de tasa previene de forma eficaz el abuso de las API.

Puntos clave del diseño

Los umbrales de la limitación de tasa deben establecerse analizando los patrones de uso de los usuarios legítimos. Si el umbral es demasiado bajo, perjudica la experiencia de los usuarios legítimos; si es demasiado alto, no logra prevenir los ataques. En entornos distribuidos, los contadores se gestionan en un almacén compartido como Redis para aplicar límites coherentes entre varios servidores. Combinar contraseñas aleatorias robustas con la limitación de tasa puede mejorar notablemente la seguridad de las páginas de inicio de sesión.libros sobre contramedidas DDoS (Amazon) también son una referencia útil.

Términos relacionados

¿Te resultó útil este artículo?

XHatena