【问题标题】:How to hide credentials in a NodeJS/Express app?如何在 NodeJS/Express 应用程序中隐藏凭据?
【发布时间】:2019-09-22 04:07:50
【问题描述】:

我正在尝试创建一个在客户端机器上本地运行的 NodeJS 服务器。我拥有访问配置文件中的数据库的所有凭据,并使用 pkg 模块创建了一个 exe 文件,以便我的客户可以运行 exe 文件并让服务器在他们的机器上运行。

我不希望我的客户获取凭据,但 exe 文件的源代码包含凭据。 如何保护数据库凭据

【问题讨论】:

  • 最好的地方是 Java 中的密钥库。节点也必须有一些东西,但是,如果它在客户端,它永远不会真正安全:您的客户端将始终能够找到它/对其进行逆向工程。快速搜索keystore nodenpmjs.com/package/key-store 看起来可以完成这项工作,对吗?
  • 您是否考虑过使用this post 中提到的加密包?
  • 你可以通过对它们进行编码和在启动时解编码来隐藏它们(过去人们使用 base64,但你可以使用任何编码/加密)。这实际上取决于您对发现的风险和后果的评估,以及投资多少来防范它。
  • 您无法保证安全。你可以混淆它,但它仍然可以被逆向工程,也可以从网络流量中嗅探凭据。如果 DB 不应该直接连接,请不要暴露它。
  • 使用 Oracle 钱包。这需要与 EXE 分开管理,并且您需要 Oracle Net 配置。见oracle.github.io/node-oracledb/doc/api.html#extauth

标签: javascript node.js dotenv node-oracledb


【解决方案1】:

加密存储您的凭据并让您的程序在启动时直接(或通过编译的程序间接以进一步隐藏您的逻辑)解密它们

【讨论】:

  • 您的意思是将它们存储在客户端机器上或我的代码中?
猜你喜欢
  • 2013-03-07
  • 2013-09-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-06
  • 2015-11-07
  • 2020-02-15
相关资源
最近更新 更多