JWT 有多安全

How secure is JWT

我知道这个问题不是什么新鲜事,可能已经在网上讨论过了。

我是新手,但经过一些研究后,我同意它是安全的,因为匿名可以嗅探令牌但无法在其上附加任何内容。我打算将 JWT 存储在 HTML5Storage 中,并解码一些不敏感信息的负载:DisplayName、email_address 和 role_info 等。

这是我的问题,匿名可以嗅探我的 JWT 令牌并代表我行事吗? 如果可能的话,我该如何避免呢?

简而言之,JWT 本身并不安全,它只是明文。基本术语中的 JWT 是一种标准协议,用于定义信息,也称为在各方之间传递的声明。结合 JWS(签名)和 JWE(加密)将使其安全。这方面的主题是 JOSE - Javascript 对象签名和加密。除了阅读您还应该参考的 RFC 本身之外,网上还有大量信息,既没有说明显而易见的信息,也没有侮辱您的搜索能力。查看 http://jose.readthedocs.io/en/latest/(包括指向 RFC 的参考链接)

所以要回答你的问题,如果在飞行中(通过网络)和静止时(即:数据库)使用行业安全标准进行签名和加密,是的,它是安全的。

就欺骗而言,您需要在会话劫持领域预先注意 and/or 令牌劫持和防止诸如彩虹表之类的事情。

无论什么标准,JOSE 真的只是一个标准,你真正要问的是关于安全措施的最佳实践,你也应该参考 OWASP https://www.owasp.org/

这是否有助于澄清您的问题?