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

标签 electron desktop-application

我们可以看到不错的应用程序(例如 Slack 和 Insomnia)转到 Electron ,但是是否有足够的安全性/稳定性来构建一个大型解决方案(例如 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)来说可能不是问题,但基于许可证或付费产品可能很容易被盗,因为没有传统编译应用程序可能提供的代码安全性/模糊性.对于某些人来说,这可能是可以接受的,而对于其他人来说则可能 Not Acceptable 。尤其是在应用程序中出现业务逻辑时。

这个问题可以缓解吗?

此问题的一个潜在解决方案是加密 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%) 的性能成本,他们可能不会支持这种功能。

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

进一步阅读:

关于electron - Electron 是企业应用程序的可靠框架吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44813223/

相关文章:

electron - 当第二个窗口被隐藏时,防止自动显示和聚焦第一个窗口

javascript - 使用 Electron-builder 构建 Electron 应用程序时如何包含本地可执行文件

javascript - Electron 加载 index.html 但不加载其余的包文件

c# - 我可以从 C# 应用程序发送 SMS 消息吗?

gwt - 架构问题 : GWT or Vaadin to create Desktop Application?

java - 在 Gnome 桌面上打开 .jar 文件

javascript - 如何让 Winston 与 Webpack 一起工作?

typescript - 为什么我不能在我的 HTML 中为 Typescript 设置全局 Electron 变量?

python - 如何通过python google drive api创建一个新文件夹以及MediaFileUpload的用途是什么?

delphi - 从 Windows 服务到客户端应用程序的命名管道