【发布时间】:2019-09-22 04:07:50
【问题描述】:
我正在尝试创建一个在客户端机器上本地运行的 NodeJS 服务器。我拥有访问配置文件中的数据库的所有凭据,并使用 pkg 模块创建了一个 exe 文件,以便我的客户可以运行 exe 文件并让服务器在他们的机器上运行。
我不希望我的客户获取凭据,但 exe 文件的源代码包含凭据。 如何保护数据库凭据?
【问题讨论】:
-
最好的地方是 Java 中的密钥库。节点也必须有一些东西,但是,如果它在客户端,它永远不会真正安全:您的客户端将始终能够找到它/对其进行逆向工程。快速搜索
keystore node:npmjs.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