JWT令牌最近已成为网络应用中非常流行的身份验证方法。 虽然这是保护资源最安全的方法之一,而且市场上没有其他选择 – 请记住,每朵玫瑰都有尖峰,这里也潜伏着许多潜在的风险。 它们主要是由于实施错误。 为了防范它们,值得坚持以下规则:
- 确保您使用的加密密钥足够复杂,至少为 2048 位。
- 在加密密钥泄漏的情况下创建一个程序。
- 密钥应以安全的方式存储(例如,它们不应存储在源代码中)。
- 服务器应要求采用特定的签名方法,以便在客户端上无法更改。
- 验证您的实现不允许签名算法"无"。
- 验证您的实现是否一定要检查签名(它不接受空白签名并区分功能"验证"和"解码")。
- 验证调试模式已禁用,并且无法在客户端强制执行。
- 不要在URL中提交JWT令牌。
- 验证您不会在 JWT 令牌中披露敏感信息。
- 确保您保护自己免受重播攻击。
- 验证令牌的寿命是否足够短,并且实际检查正确。
- 考虑您是否需要使单个令牌失效的功能。