mediumCWE-770OWASP LLM04:2025

Sin Rate Limiting de IA

Tu app hace llamadas a APIs de IA sin límites por usuario, dejando que un solo usuario (o bot) dispare miles de requests y agote tu presupuesto de API en minutos.

Cómo Funciona

Las llamadas a APIs de IA son caras — GPT-4o puede costar $10-30 por millón de tokens, y Claude Opus es similar. Sin rate limiting, un usuario gratuito puede escribir un script que martille tu endpoint /api/ai todo el día. Esto es un ataque de costos: ellos no pagan nada, tú pagas la factura. También es un vector de denegación de servicio si llegas a los límites de la API y los usuarios legítimos quedan bloqueados.

Código Vulnerable
// MAL: sin rate limiting en el endpoint de IA
export async function POST(req: Request) {
  const { message } = await req.json();
  // Cualquier usuario autenticado puede llamar esto sin límite
  const response = await openai.chat.completions.create({ messages: [{ role: 'user', content: message }] });
  return Response.json({ result: response.choices[0].message.content });
}
Código Seguro
// BIEN: aplica rate limits por usuario antes de llamar a la IA
export async function POST(req: Request) {
  const user = await getAuthUser(req);
  const usage = await getUserAiUsage(user.id); // revisar contador en Redis/BD
  if (usage.requestsThisHour > 20) {
    return Response.json({ error: 'Límite de tasa excedido' }, { status: 429 });
  }
  await incrementAiUsage(user.id);
  const response = await openai.chat.completions.create({ messages: [{ role: 'user', content: message }] });
  return Response.json({ result: response.choices[0].message.content });
}

Ejemplo Real

Varios desarrolladores indie han reportado despertarse con facturas de API de IA de $500-$2000 después de olvidar agregar rate limiting. Los bots escanean apps públicas en busca de endpoints de IA sin protección a los pocos días del lanzamiento. OpenAI ahora ofrece límites de gasto, pero eso no te protege de llegar a tus propios límites y romper tu app para usuarios reales.

Cómo Prevenirlo

  • Implementa rate limits por usuario (ej. 20 requests/hora para gratis, 200 para de pago) rastreados en Redis o tu base de datos
  • Configura límites de gasto fijos en el dashboard de tu proveedor de IA como red de seguridad
  • Agrega autenticación a todos los endpoints de IA — nunca los expongas públicamente sin auth
  • Rastrea el uso de tokens por usuario, no solo el conteo de requests (un request puede consumir miles de tokens)
  • Alerta cuando el uso se dispare — un usuario haciendo 10x su uso normal es una señal de alerta

Tecnologías Afectadas

Node.jsPython

Data Hogo detecta esta vulnerabilidad automáticamente.

Escanea Tu Repo Gratis

Vulnerabilidades Relacionadas