【问题标题】:Is Electron a Reliable Framework for Enterprise Apps?Electron 是企业应用程序的可靠框架吗?
【发布时间】:2017-12-02 10:50:45
【问题描述】:

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

【问题讨论】:

    标签: electron desktop-application


    【解决方案1】:

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

    但是,对于某些人来说,更大的担忧是安全性。请允许我解释一下。

    Electron 如何封装应用程序

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

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

    为什么这是一个安全问题

    这意味着您的所有应用程序代码都只是放入存档中。可以使用 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%) 的性能成本,并且他们可能不会支持这种功能。

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

    进一步阅读:

    【讨论】:

    • 请注意,我个人使用电子并觉得值得这个权衡。这是一个很棒的软件。但这是我在使用 Electron 时遇到的最大“担忧”。
    • 是的,不幸的是,在那个级别上做逆向工程师太容易了。
    猜你喜欢
    • 1970-01-01
    • 2011-09-04
    • 1970-01-01
    • 1970-01-01
    • 2015-09-14
    • 2011-03-25
    • 2011-03-27
    • 2011-08-06
    • 1970-01-01
    相关资源
    最近更新 更多