Las APIs son la parte más expuesta de tu aplicación: públicas por diseño, documentadas por conveniencia y muchas veces lo último que se testea. Este checklist convierte el OWASP API Security Top 10 en controles concretos para correr antes de cada release.

1. Autenticación

  • Todo endpoint no público rechaza requests sin token (401).
  • Tokens expirados o manipulados se rechazan; firma y expiración del JWT validadas en el servidor.
  • Ningún endpoint acepta credenciales en la URL o query string.

OWASP API2: Autenticación rota.

2. Autorización (la más importante)

  • A nivel de objeto: cada request con un ID verifica que el usuario actual es dueño del recurso. Cambiar el ID a otro usuario debe devolver 403/404, no sus datos.
  • A nivel de función: las rutas de admin rechazan tokens de usuarios normales.
  • A nivel de propiedad: el usuario no puede setear campos protegidos (role, isAdmin) por mass assignment.

OWASP API1 (BOLA), API3, API5 — los riesgos más explotados.

    // El control BOLA que todo endpoint necesita
const order = await db.order.findFirst({
  where: { id: params.id, userId: session.user.id },
})
if (!order) return new Response(null, { status: 404 })

3. Rate limiting

  • Login, signup, reset de contraseña y pagos están limitados.
  • La paginación tiene tope; el tamaño del body está limitado.

OWASP API4: Consumo de recursos sin restricción.

4. Validación de input

  • Todo el input se valida en el servidor contra un schema.
  • Acceso a la base con queries parametrizadas u ORM — nunca SQL armado con strings.

5. Secretos y configuración

  • Ningún secreto en el cliente ni en .env commiteados; rotá cualquier clave expuesta.
  • Si usás Supabase, RLS activado en cada tabla (ver la guía de RLS).

6. Transporte y headers

  • HTTPS y HSTS; CORS restringido a orígenes conocidos.
  • Headers de seguridad: CSP, X-Content-Type-Options, X-Frame-Options.

Automatizá el checklist

Nurbak escanea tu app desplegada en busca de estos problemas y devuelve un informe priorizado; Nurbak Watch monitorea las tasas de error por endpoint y te alerta en segundos ante un ataque en curso.

Artículos relacionados