Las APIs son la nueva superficie de ataque
La mayoría de aplicaciones modernas exponen APIs REST que son consumidas por frontends, apps móviles y servicios de terceros. Cada endpoint es un punto de entrada potencial para un atacante. Sin embargo, la seguridad de las APIs recibe mucha menos atención que la seguridad del frontend, creando un punto ciego peligroso.
Autenticación: JWT, OAuth2 y API Keys
JWT (JSON Web Tokens) es el estándar más extendido para autenticación en APIs REST. Implementa correctamente: tokens de corta duración (15-30 minutos), refresh tokens almacenados de forma segura, verificación de firma en cada petición, y blacklisting de tokens revocados. Para APIs públicas o de terceros, OAuth2 con scopes granulares es el estándar. Las API Keys son aceptables para autenticación server-to-server, pero nunca para autenticación de usuarios.
Autorización: el eslabón olvidado
Autenticación verifica quién eres; autorización verifica qué puedes hacer. Broken Object Level Authorization (BOLA) es la vulnerabilidad más común en APIs: un usuario autenticado accede a recursos de otro usuario simplemente cambiando el ID en la URL. La solución: verifica permisos en cada endpoint, no solo que el usuario está autenticado sino que tiene acceso al recurso específico que solicita.
Rate limiting y throttling
Sin rate limiting, tu API es vulnerable a ataques de fuerza bruta, DDoS y abuso. Implementa límites por IP, por usuario autenticado y por endpoint. Endpoints sensibles como login, registro y reseteo de contraseña necesitan límites más estrictos. Devuelve headers estándar (X-RateLimit-Limit, X-RateLimit-Remaining, Retry-After) para que los clientes legítimos puedan adaptarse.
Validación de entrada
Valida todo lo que llega del cliente: tipo de dato, longitud, formato, rango. Usa schemas de validación (JSON Schema, Joi, Zod) para definir la estructura esperada de cada request. Rechaza todo lo que no encaje con un error 400 claro. Nunca confíes en la validación del frontend: es UX, no seguridad.
Logging y monitorización
Logea todas las peticiones con información suficiente para investigar incidentes: timestamp, IP, usuario, endpoint, status code, y tiempo de respuesta. Implementa alertas para patrones sospechosos: múltiples 401/403, picos de tráfico inusuales, accesos a endpoints admin desde IPs desconocidas. Los logs son tu forense digital cuando algo sale mal.