gpt4 book ai didi

jwt - 如何在 Electron App 中安全、正确地存储 JWT token

转载 作者:行者123 更新时间:2023-12-03 12:24:25 24 4
gpt4 key购买 nike

我正在构建一个 Electron 桌面应用程序,在应用程序中它将使用 JWT token 调用远程 API。但是,在没有 XSS、CSRF、中间人攻击等威胁的情况下,我应该在哪里安全地保存这个 JWT token ......并且其他应用程序无法访问

我试过使用 node-keytar包,它使用从用户登录中派生的加密 key 。

但是根据这个问题(https://github.com/atom/node-keytar/issues/88),如果用户的环境安装了恶意软件,凭证(在我们的场景中为 JWT)仍然可能受到损害。

node-keytar 的代码相当简单,这里是 add secret

keytar.addPassword('KeytarTest', 'AccountName', 'secret');

这是获取的 secret
const secret = keytar.getPassword('KeytarTest', 'AccountName');
console.log(secret); // "supersecret"

我正在考虑将 JWT 存储到内存中可能是最安全的方式,但需要用户在每次重新打开 Electron 桌面应用程序时重新登录并获取 JWT token 。
欢迎任何建议或想法。谢谢!

最佳答案

在许多涉及 JWT 的用例中,您不必在将 JWT 发送到 API 之前对其进行任何额外的加密/混淆,因为:

  • 当您将 JWT 发送到 API 时,您将通过 SSL 或 HTTPS 执行此操作,这会加密整个有效负载。从理论上讲,这将消除大多数中间人攻击的机会。
  • 即使有人设法嗅探您的 JWT token ,他们也会缺少解锁它所需的服务器 key 。此外,即使他们设法解锁了 JWT,也几乎不可能在不更改校验和的情况下更改其内容,校验和包含在 JWT 本身中。这通过在 JWT 中插入一些东西来消除注入(inject)攻击的机会。

  • 所以一般来说,JWT 模式是一种将服务器端 session 状态推送到应用程序之外的方式。它以这样一种方式做到这一点,即这种状态不受外界篡改。如果可以轻松地在外部篡改 JWT,那么整个模式就会分崩离析。

    关于jwt - 如何在 Electron App 中安全、正确地存储 JWT token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56277856/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com