Errores de seguridad de JWT y cómo evitarlos

JWT es potente para la autenticación de API, pero muchos incidentes de producción provienen de errores de implementación, no del propio JWT. Si su aplicación utiliza tokens de acceso, tokens de actualización y notificaciones de roles, su seguridad depende de los detalles.
1) Aceptar cualquier algoritmo
Nunca confíes únicamente en el algoritmo enviado por el encabezado del token. Su servidor debe aplicar una lista de permitidos explícita (por ejemplo, solo RS256).
- Fijar algoritmos esperados en el lado del servidor.
- Rechazar tokens con
alg. faltantes o inesperados - Utilice bibliotecas JWT maduras y mantenidas activamente.
2) Tokens de acceso de larga duración
Si un token de acceso se filtra y permanece válido durante días, el atacante tiene demasiado tiempo. Mantenga los tokens de acceso de corta duración y confíe en el flujo de actualización.
- Token de acceso: TTL corto (5-15 minutos).
- Actualizar token: TTL más largo + rotación + revocación.
- Invalidar sesiones por actividad sospechosa.
3) Fuga de tokens en URL y registros
Nunca coloque JWT en parámetros de consulta. Las URL terminan en registros, análisis, historial del navegador y referencias.
- Enviar tokens en
Autorización: Portador...encabezado. - Eliminar encabezados de autenticación de registros y seguimientos de APM.
- Enmascarar campos confidenciales en el informe de errores del cliente.
4) Validación de reclamo débil
Validar iss, aud, exp, nbf y iat. También verifique las restricciones comerciales como la identificación del inquilino y los roles requeridos.
- Rechazar tokens caducados o aún no válidos.
- Vincular audiencia esperada por servicio.
- No confíe en las afirmaciones de roles sin comprobaciones del lado del servidor.
5) Sin estrategia de rotación de claves
Se filtran claves, los certificados caducan y se producen incidentes. Planificar la rotación antes del lanzamiento de producción.
- Utilice
kidencabezados y puntos finales JWKS. - Admite claves superpuestas durante las ventanas de rotación.
- Supervisar errores de validación de firmas en busca de anomalías.
Lista de verificación práctica de endurecimiento
- Aplicar lista de permitidos de algoritmos estrictos.
- Utilice tokens de acceso de corta duración.
- Rotar tokens de actualización y admitir la revocación.
- Almacene tokens de forma segura (prefiera cookies httpOnly).
- Validar todas las afirmaciones estándar y críticas para el negocio.
- Implementar rotación de claves con monitoreo.
Herramientas relacionadas
- JWT Decoder: inspecciona el encabezado y la carga útil de forma segura.
- Generador de hash: verifica el mensaje y archiva las huellas digitales.
- Generador de contraseñas: crea secretos seguros para cuentas de administrador y de servicio.