Electron 是企业应用程序的可靠框架吗?
Is Electron a Reliable Framework for Enterprise Apps?
我们可以看到优秀的应用程序(例如 Slack 和 Insomnia)Electron,但是 safety/stable 足以构建一个大型解决方案(例如 ERP)吗?谢谢
就稳定性而言,Electron 非常稳定。根据我的经验,在 Electron 上开发一些复杂的软件时,我没有遇到过稳定性问题或意外行为。
然而,一些人更关心的是安全问题。请允许我解释一下。
Electron 如何打包应用程序
Electron 通过将所有 javascript 组件捆绑到 asar.
中来打包应用程序
Asar is a simple extensive archive format, it works like tar that concatenates all files together without compression, while having random access support.
为什么这是一个安全问题
这意味着您的所有应用程序代码都被放入存档中。可以使用 asar 命令非常简单地浏览和提取此存档。
npm install asar
asar extract my-app.asar
虽然这对于依赖后端付费服务的开源项目或应用程序(如 Slack)来说可能不是问题,但基于许可证或付费产品可能很容易被盗,因为没有传统编译应用程序的代码安全性/隐蔽性可能会提供。对于某些人来说,这可能是可以接受的,而对于其他人来说则可能不可接受。特别是如果业务逻辑出现在应用程序中。
这个问题可以缓解吗?
此问题的一个潜在解决方案是加密 ASAR 的能力。此问题已提交给 Electron 开发人员,但他们表示 while they are open to a pull request they will likely not be implementing it themselves.
缓解此问题的另一种可能技术是使用 UglifyJS 等方法进行代码混淆。但这显然不是真正的保护,只是一种隐藏技术。
NW.js 使用的第三个解决方案是compile your JS to a V8 snapshot。然而,Electron 开发人员表示这会产生显着 (50%) 的性能成本,他们可能不会支持这种功能。
综上所述,几乎可以对任何语言的任何应用程序进行反编译/反向工程。 "putting your code out there." Electron 只是让这样做更容易一些,但是他们这样做有很强的理由(性能提升),除非你有付费许可产品,否则它可能对你没有太大影响。
进一步阅读:
我们可以看到优秀的应用程序(例如 Slack 和 Insomnia)Electron,但是 safety/stable 足以构建一个大型解决方案(例如 ERP)吗?谢谢
就稳定性而言,Electron 非常稳定。根据我的经验,在 Electron 上开发一些复杂的软件时,我没有遇到过稳定性问题或意外行为。
然而,一些人更关心的是安全问题。请允许我解释一下。
Electron 如何打包应用程序
Electron 通过将所有 javascript 组件捆绑到 asar.
中来打包应用程序Asar is a simple extensive archive format, it works like tar that concatenates all files together without compression, while having random access support.
为什么这是一个安全问题
这意味着您的所有应用程序代码都被放入存档中。可以使用 asar 命令非常简单地浏览和提取此存档。
npm install asar
asar extract my-app.asar
虽然这对于依赖后端付费服务的开源项目或应用程序(如 Slack)来说可能不是问题,但基于许可证或付费产品可能很容易被盗,因为没有传统编译应用程序的代码安全性/隐蔽性可能会提供。对于某些人来说,这可能是可以接受的,而对于其他人来说则可能不可接受。特别是如果业务逻辑出现在应用程序中。
这个问题可以缓解吗?
此问题的一个潜在解决方案是加密 ASAR 的能力。此问题已提交给 Electron 开发人员,但他们表示 while they are open to a pull request they will likely not be implementing it themselves.
缓解此问题的另一种可能技术是使用 UglifyJS 等方法进行代码混淆。但这显然不是真正的保护,只是一种隐藏技术。
NW.js 使用的第三个解决方案是compile your JS to a V8 snapshot。然而,Electron 开发人员表示这会产生显着 (50%) 的性能成本,他们可能不会支持这种功能。
综上所述,几乎可以对任何语言的任何应用程序进行反编译/反向工程。 "putting your code out there." Electron 只是让这样做更容易一些,但是他们这样做有很强的理由(性能提升),除非你有付费许可产品,否则它可能对你没有太大影响。
进一步阅读: