mediumCWE-770API4:2023

Consumo de Recursos Sin Restricción

Endpoints de API sin rate limiting, paginación o límites de recursos — permitiendo a atacantes agotar recursos del servidor, generar costos o extraer datasets grandes.

Cómo Funciona

Sin rate limiting, un atacante puede inundar tu API con requests, causando denegación de servicio o facturas de cloud excesivas. Sin límites de paginación, un solo request puede retornar millones de registros. Sin límites de tamaño de request, payloads grandes pueden agotar la memoria. Esto es especialmente peligroso para APIs que disparan operaciones costosas como llamadas a modelos de IA, envío de emails o procesamiento de archivos — cada request cuesta dinero real.

Código Vulnerable
// No rate limit, no pagination
app.get('/api/users', auth, async (req, res) => {
  const users = await User.find(); // Returns ALL users
  res.json(users);
});
Código Seguro
import rateLimit from 'express-rate-limit';
const limiter = rateLimit({ windowMs: 60000, max: 100 });
app.get('/api/users', auth, limiter, async (req, res) => {
  const page = parseInt(req.query.page) || 1;
  const users = await User.find()
    .skip((page - 1) * 20).limit(20);
  res.json(users);
});

Ejemplo Real

En 2023, múltiples startups reportaron facturas inesperadas de APIs de IA que excedían $100,000 después de que atacantes descubrieron endpoints sin protección que llamaban a GPT-4. Sin rate limiting, cada request costaba ~$0.03 y los bots enviaron millones de requests.

Cómo Prevenirlo

  • Implementa rate limiting en todos los endpoints de API
  • Siempre usa paginación con tamaños de página razonables
  • Configura límites de tamaño del body de request
  • Monitorea y alerta sobre patrones de uso inusuales

Tecnologías Afectadas

Node.jsPythonGoJavaPHPC#

Data Hogo detecta esta vulnerabilidad automáticamente.

Escanea Tu Repo Gratis

Vulnerabilidades Relacionadas