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

Posted

技术标签:

【中文标题】如何保护 JWT 令牌以避免将其从一台计算机共享到另一台计算机【英文标题】:How to secure JWT token to avoid sharing it from one computer to another 【发布时间】:2021-07-04 23:48:39 【问题描述】:

我目前正在使用具有 256 哈希算法的 JWT 令牌,每 5 分钟过期一次,现在我的问题是如何保护令牌以防止其将令牌从(Local StorageCookie)复制到另一台计算机。有没有办法防止这种攻击?另请注意,我们在网站中也使用 SSL,但我们仍将其视为安全漏洞。有没有办法防止令牌从一台计算机复制到另一台计算机?

【问题讨论】:

【参考方案1】:

首先,您不应该将您的令牌或秘密项目放在 localStorage 中,因为它会带来 XSS(跨站点脚本)的漏洞。这是因为 localStorage 始终可以通过 javascript 访问,而 XSS 可能会添加恶意脚本,将令牌发送到另一台服务器。

您应该使用http only flag 将您的令牌放在cookie 上。这样可以避免通过 javascript 访问它们。

我还建议阅读有关 cors 的内容,以便提供足够的保护以避免 CSRF(跨站点请求伪造)。

【讨论】:

感谢您的回答,非常有帮助!

以上是关于如何保护 JWT 令牌以避免将其从一台计算机共享到另一台计算机的主要内容,如果未能解决你的问题,请参考以下文章

如何保护 ASP.NET Core Web API 免受被盗 JWT 令牌以进行模拟

将 JWT 令牌存储在共享首选项中?并在整个应用程序中检索价值?

ExpressJS / Angular 2 JWT 令牌

如何保护刷新令牌?

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

如何从 expressjs 发送 jwt 令牌以响应应用程序? [关闭]