Los tokens JWT se han convertido recientemente en un método de autenticación muy popular en las aplicaciones web. Si bien esta es una de las formas más seguras de proteger los recursos, y no hay alternativas en el mercado, tenga en cuenta que cada rosa tiene picos y hay muchos riesgos potenciales que acechan aquí también. Se deben principalmente a errores de implementación. Para protegerse de ellos, vale la pena atenerse a las siguientes reglas:
- Asegúrese de que está utilizando claves de cifrado suficientemente complejas de al menos 2048 bits.
- Cree un procedimiento en caso de fuga de la clave de cifrado.
- Las claves deben almacenarse de forma segura (por ejemplo, no deben estar en el código fuente).
- El servidor debe requerir un método de firma específico para que no se pueda cambiar en el lado del cliente.
- Compruebe que la implementación no permite el algoritmo de firma "none".
- Compruebe que su implementación está segura de comprobar la firma (no acepta una firma en blanco y distinguir entre las funciones "verify()" y "decode()" ).
- Compruebe que el modo de depuración está deshabilitado y no se puede aplicar en el lado del cliente.
- No envíe tokens JWT en la dirección URL.
- Compruebe que no divulga información confidencial en el token JWT.
- Asegúrate de que te estás protegiendo de un ataque de repetición.
- Compruebe que la duración del token es lo suficientemente corta y que realmente se comprueba correctamente.
- Considere si necesita o no la función de invalidar tokens individuales.