Electron 是企业应用程序的可靠框架吗?

Luc*_*cas 2 desktop-application electron

我们可以看到优秀的应用程序(例如 Slack 和 Insomnia)转向Electron,但是是否具有足够的安全性/稳定性来构建大型解决方案(例如 ERP)?谢谢。

Ali*_*ken 6

就稳定性而言,Electron 非常稳定。根据我的经验,在 Electron 上开发一些复杂的软件时,我没有遇到过稳定性问题或意外行为。

然而,一些人更关心的是安全性。请允许我解释一下。

Electron 如何封装应用程序

Electron 通过将所有 javascript 组件捆绑到asar中来打包应用程序。

Asar 是一种简单的扩展存档格式,它的工作方式类似于 tar,将所有文件连接在一起而不压缩,同时具有随机访问支持。

为什么这是一个安全问题

这意味着您的所有应用程序代码都将被放入存档中。可以使用 asar 命令非常简单地探索和提取该存档。

npm install asar
asar extract my-app.asar
Run Code Online (Sandbox Code Playgroud)

虽然这对于依赖后端付费服务的开源项目或 Slack 等应用程序来说可能不是问题,但基于许可证或付费产品可能很容易被盗,因为没有传统编译应用程序可能提供的代码安全性/模糊性。对于某些人来说,这可能是可以接受的,但对于另一些人来说则可能不能接受。特别是当业务逻辑出现在应用程序中时。

这个问题可以缓解吗?

该问题的一个潜在解决方案是对 ASAR 进行加密。这个问题已提交给 Electron 开发人员,但他们表示,虽然他们对拉取请求持开放态度,但他们可能不会自己实现它

缓解此问题的另一种可能的技术是使用UglifyJS之类的代码混淆。但这显然不是真正的防护,只是一种隐藏技巧。

第三种解决方案(NW.js 使用的一种)是将JS 编译为 V8 快照。然而,Electron 开发人员表示,这会带来巨大的 (50%) 性能成本,并且他们可能不支持这种功能。

综上所述,可以对任何语言的几乎任何应用程序进行反编译/逆向工程。Electron 只是通过“把你的代码放在那里”让这件事变得更容易一些。然而,他们这样做有充分的理由(性能提升),除非您有付费许可产品,否则它可能对您没有太大影响。

进一步阅读: