【问题标题】:Where should I store OAuth client secret in an electron app?我应该在电子应用程序中的哪里存储 OAuth 客户端密码?
【发布时间】:2023-03-03 01:23:01
【问题描述】:

我正在构建一个使用公共 API 的电子应用(桌面)。现在我们都知道 Javscript 将对所有人可见,我将丑化我的代码。

要进行 API 调用,我必须将 client-id 和 client-secret 传递给 API 提供者。使用这两个密钥,任何人都可以冒充我并调用 API。

到目前为止,我一直在使用已编译的编程环境,因此获取这些信息更加困难。在这种情况下,您有什么建议,当我使用 Javascript 创建桌面应用程序时,客户端密码将在那里。

我们可以做些什么来完成这项工作?

在我自己的服务器上调用代码来获取这些数据,我想不出任何其他方式来安全地存储客户端密码。

请出主意。 :)

【问题讨论】:

  • 您是否找到了如何在 Electron 应用中存储类似令牌的秘密的解决方案?
  • 我认为一种方法是构建您的应用程序以要求用户通过您的应用程序注册和登录。一旦通过身份验证,您的服务/api 就可以将请求代理到第三方服务。我认为像 Postman 这样的应用可以做到这一点,即需要登录。

标签: node.js electron


【解决方案1】:

如果您使用任何第三方服务/API,则不能公开客户端 ID 和密码。您必须通过自己的服务器路由这些请求。此外,很少有身份验证解决方案会检查和验证请求的源/IP 地址。如果此类请求来自随机客户端 IP,它可能会完全拒绝它。

【讨论】:

  • 这不是通过创建另一个相同的问题来解决问题吗?现在您需要保护对您自己的服务器的访问,这样不法分子就不会将您服务器的代理调用到第三方 API。如果您通过向您的服务器传递一个秘密来做到这一点,那么您现在已经将该秘密存储在您的电子应用程序中。
【解决方案2】:

为此使用 bytenode:黑盒低级 API 代码,从不从黑盒边界导出机密。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-05-30
    • 2010-11-10
    • 2013-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多