Skip to content
NeuralSkills
Seguridad

Limitador de Tasa de API

Disena estrategias de rate limiting y proteccion DDoS — ventanas deslizantes, token buckets y throttling adaptativo para tus APIs.

Intermedio Gratis Publicado: 15 de abril de 2026
Herramientas Compatibles claude-codechatgptgeminicopilotcursorwindsurfuniversal

El Problema

Sin rate limiting, tu API es un buffet abierto para atacantes. Intentos de login por fuerza bruta corren sin control a miles por segundo. Bots de scraping agotan tu base de datos e inflan costos de hosting. Un solo usuario con un loop puede disparar una denegacion de servicio para todos los demas. El rate limiting no es opcional — es un control de seguridad fundamental que protege la disponibilidad, previene el abuso y mantiene los costos predecibles.

El Prompt

Eres un arquitecto de seguridad de APIs. Disena una estrategia integral de rate limiting para mi aplicacion.

DETALLES DE LA API:
- Framework: [ej. Express, FastAPI, Spring Boot, Next.js API routes]
- Endpoints: [lista endpoints criticos — login, signup, busqueda, carga de archivos, pago]
- Patron de trafico: [ej. 1K RPM normal, 10K RPM pico]
- Infraestructura: [ej. servidor unico, balanceado, serverless, CDN]
- Proteccion actual: [ej. ninguna, nginx limit_req basico, Cloudflare]

Disenar rate limiting para cada categoria de endpoint:

1. **Endpoints de autenticacion** (login, registro, reset de contrasena):
   - Requests por ventana, tamano de ventana y clave (IP, email o ambos)
2. **Endpoints de API publicos** (busqueda, listados, datos publicos):
   - Limites por IP y por API key
3. **Endpoints de API autenticados** (CRUD, carga de archivos):
   - Limites por usuario con tolerancia de burst
4. **Endpoints de webhook/callback**:
   - Validacion por fuente y control de tasa

Para cada uno, especificar:
- **Algoritmo**: Ventana fija / Ventana deslizante / Token bucket / Leaky bucket
- **Estrategia de clave**: IP, user ID, API key o compuesta
- **Limites**: Requests por ventana con tolerancia de burst
- **Respuesta**: Codigo de estado, header Retry-After, cuerpo de error
- **Almacenamiento**: En memoria, Redis o contador distribuido

Incluir codigo de implementacion para mi framework especifico.

Ejemplo de Salida

## Estrategia de Rate Limiting

### Endpoints de Autenticacion
Algoritmo: Ventana deslizante
Clave: Compuesta IP + email
Limites: 5 intentos/minuto por IP, 20 intentos/hora por email
Respuesta: 429 con header Retry-After

### Implementacion (Express + rate-limit-redis):
const loginLimiter = rateLimit({
  windowMs: 60 * 1000,
  max: 5,
  keyGenerator: (req) => `${req.ip}:${req.body.email}`,
  handler: (req, res) => res.status(429).json({
    error: 'Demasiados intentos', retryAfter: 60
  })
});

Cuando Usar

Implementar rate limiting antes de cualquier lanzamiento de API publica, y revisar los limites cuando los patrones de trafico cambien significativamente. Esencial al agregar endpoints de autenticacion, procesamiento de pagos o funciones de carga de archivos. Usarlo despues de detectar picos de trafico inusuales o patrones de abuso en tus logs.

Tips Pro

  • Capas de defensa — combina rate limiting a nivel de aplicacion con proteccion a nivel de infraestructura (Cloudflare, nginx, AWS WAF) para defensa en profundidad.
  • Usa claves compuestas — rate limiting solo por IP se evita facilmente con proxies rotativos. Combina IP + user ID + API key para limitacion resistente.
  • Retorna headers Retry-After — clientes legitimos pueden retroceder de forma elegante en lugar de martillar tu API. Incluye el header en cada respuesta 429.
  • Monitorea antes de aplicar — despliega rate limiting en modo solo-logging primero para entender tus patrones de trafico y evitar bloquear usuarios legitimos.