【发布时间】:2019-10-10 04:24:33
【问题描述】:
我正在构建一个电子桌面应用程序,在该应用程序中它将使用 JWT 令牌调用远程 API。但是,在没有 XSS、CSRF、中间人攻击等威胁的情况下,我应该在哪里安全地保存这个 JWT 令牌......并且其他应用程序无法访问
我尝试过使用node-keytar 包,它使用从用户登录中派生的加密密钥。
但是根据这个问题(https://github.com/atom/node-keytar/issues/88),如果用户的环境安装了恶意软件,凭证(在我们的场景中为 JWT)仍然可能被破坏。
node-keytar 的代码比较简单,这里是添加秘钥
keytar.addPassword('KeytarTest', 'AccountName', 'secret');
这是获取秘诀
const secret = keytar.getPassword('KeytarTest', 'AccountName');
console.log(secret); // "supersecret"
我正在考虑将 JWT 存储到内存中可能是最安全的方式,但需要用户在每次重新打开电子桌面应用程序时重新登录并获取 JWT 令牌。 欢迎任何建议或想法。谢谢!
【问题讨论】: