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. En 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.

Quién se ralentiza realmente cuando no hay límites

En una API sin límites de tasa, la capacidad de procesamiento se reparte en la práctica por orden de llegada. Si un único cliente sigue enviando un gran volumen de solicitudes, ese cliente monopoliza recursos compartidos como las conexiones disponibles, el tiempo de CPU y las conexiones a la base de datos, y quienes quedan esperando son usuarios ajenos. El síntoma que aparece como incidencia es una lentitud general de las respuestas, mientras que el cliente concreto que la provoca no se manifiesta en la superficie. Ese estado tampoco requiere mala intención: un cliente con una implementación de reintentos demasiado simple, o un proceso por lotes que realiza una primera sincronización masiva, produce el mismo resultado. Por eso la limitación de tasa no es solo un medio para bloquear ataques, sino también un mecanismo que corta la vía por la que el comportamiento de un usuario se traslada a la experiencia de los demás. Cuando el límite se declara de forma explícita, el cliente que lo supera también recibe la indicación de que ha alcanzado un límite, de modo que la situación no tiene que tratarse como una ralentización de origen desconocido.

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.

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.

Términos relacionados

¿Te resultó útil este artículo?