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
.envcommiteados; 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.

