我正在构建一个电子桌面应用程序,在这个应用程序中,它将使用JWT令牌调用远程API。但是,在没有XSS、CSRF、man中间攻击等威胁的情况下,我应该把这个JWT令牌安全地保存在哪里呢?其他应用程序无法访问
我尝试使用node-keytar包,它使用从用户登录中派生的加密密钥。
但是根据这个问题(https://github.com/atom/node-keytar/issues/88),如果用户的环境安装了恶意软件,证书(在我们的场景中是JWT)仍然会受到危害。
节点-keytar的代码非常简单,下面是添加秘密
keytar.addPassword('KeytarTest', 'AccountName', 'secret');这里有个秘密
const secret = keytar.getPassword('KeytarTest', 'AccountName');
console.log(secret); // "supersecret"我正在考虑将JWT存储到内存中可能是最安全的方法,但每次重新打开电子桌面应用程序时,用户都需要重新登录并获得JWT令牌。欢迎任何建议或想法。谢谢!
发布于 2019-05-23 14:57:11
在许多涉及JWT的用例中,在将JWT发送到API之前,不一定需要对JWT进行任何额外的加密/混淆,因为:
因此,一般来说,JWT模式是将服务器端会话状态推送到应用程序之外的一种方式。它这样做是为了保护这种状态不受外界的干扰。如果可以轻松地在外部篡改一个JWT,那么整个模式就会崩溃。
https://stackoverflow.com/questions/56277856
复制相似问题