如何保护 JWT 令牌

Posted

技术标签:

【中文标题】如何保护 JWT 令牌【英文标题】:How to secure JWT tokens 【发布时间】:2018-09-12 18:39:11 【问题描述】:

我正在使用 JWT 令牌来授权来自 Angular 网站对我的 API 的请求,并且我将令牌保存在本地存储中,但问题是它容易受到攻击,因为攻击者可以轻松地从本地存储中获取令牌并且很容易获取存储在令牌中的内容或使用令牌做任何其他事情,有没有办法安全地存储这些令牌?

【问题讨论】:

如果您想要本地存储 JWT 令牌,不确定您是否走在正确的轨道上。 jwt.io/introduction. 将令牌存储在本地存储中就可以了,只要确保它不包含任何敏感数据即可。确保使用jwt.io 对其进行解密 另外,这绝对可以帮助您下​​定决心:auth0.com/docs/security/store-tokens 您在开发 SPA 吗?好读stormpath.com/blog/… 任何用户都可以在自己的计算机上看到令牌,然后在任意请求中使用它们。你不能隐藏它们。 【参考方案1】:

据我了解,您担心其他用户无法使用该令牌 用于虚假用途(API 调用)

为此,您可以为令牌设置较小的超时时间,例如 5-10 分钟并不断更新它。所以就算有人拿到了,5分钟后就不能用了。

一些开发人员甚至使用 10-20 秒超时来避免这种情况。

您可以阅读此链接了解更多用法 - JWT

【讨论】:

以上是关于如何保护 JWT 令牌的主要内容,如果未能解决你的问题,请参考以下文章

在客户端存储 JWT 令牌的位置以及如何保护它? [复制]

如何使用 Microsoft JWT 令牌处理程序来保护基于 webHttpBinding 的 WCF 服务

如何将 jwt 令牌发送到 node.js 中的受保护路由

JSON Web 令牌(JWT)是如何保护 API 的?

如何保护 JWT 令牌以避免将其从一台计算机共享到另一台计算机

使用 JWT 令牌保护 asp.net 核心 Web api 时如何从 Azure AD 获取用户