Javascript 确保电子应用程序安全的最佳实践

Javascript 确保电子应用程序安全的最佳实践,javascript,node.js,security,electron,electron-builder,Javascript,Node.js,Security,Electron,Electron Builder,我有一个电子应用程序打包成一个asar文件。然而,几乎所有地方都提到这种格式根本没有安全性。每个人都可以使用npx asar extract app.asar destfolder解包,并访问源代码+资源文件(证书、图像、音频等) 这意味着从技术上讲,一个人可以随意篡改代码和资源文件,并用不需要的代码创建假版本 那么,检查应用程序是否被篡改的最佳实践是什么?另外,您认为我应该将私钥和公共证书存储在哪里(我需要它们连接到我的nodejs服务器) 谢谢:)答案是代码签名。有关代码签名的定义,请查看W

我有一个电子应用程序打包成一个asar文件。然而,几乎所有地方都提到这种格式根本没有安全性。每个人都可以使用
npx asar extract app.asar destfolder
解包,并访问源代码+资源文件(证书、图像、音频等)

这意味着从技术上讲,一个人可以随意篡改代码和资源文件,并用不需要的代码创建假版本

那么,检查应用程序是否被篡改的最佳实践是什么?另外,您认为我应该将私钥和公共证书存储在哪里(我需要它们连接到我的nodejs服务器)


谢谢:)

答案是代码签名。有关代码签名的定义,请查看Wikipedia()。有关Electron中代码签名的文档,请查看此链接

第二,关于补充问题,私钥和谁的公共证书的用途是什么?为什么需要这些东西来连接nodejs服务器


如果您想保护应用程序和服务器之间的通信通道,请使用HTTPS。

哦,这是否意味着如果我篡改已签名应用程序的asar文件,将阻止用户将其用于macOS/Windows?对于证书,我需要它们在客户端使用HTTPS(nodejs.org/api/tls.html)连接到我的TCP服务器,这是requestCert参数的原因。我不知道我应该把它设置为真还是假,如果是,我必须知道在客户端将证书存储在哪里,对吗?谢谢你的帮助@rymuff@Xelik,当您试图执行被篡改的应用程序时,将弹出警告消息。在典型的TLS中,您不需要客户端证书,这是一个可选参数。此外,如果要验证或授权客户端,请使用JWT、SSO等。