如何防止基于离线Angular+Express的应用程序被盗?



去年,我为本地仓库(物流中心(开发了一个简单的基于Angular-Express-SQLite的应用程序,该应用程序用于跟踪每日进出的卡车,包括重量,原产地等信息,并将该应用程序部署在离线桌面上。 一切都很顺利,直到我知道仓库的计算机操作员以可观的价格将该应用程序转售给其他仓库。

现在,第一个仓库所有者再次与我联系,根据政府的新指导方针,对应用程序进行了一些更改,并提供了一些关键输入,我正在寻找一些解决方案来防止应用程序再次被盗。

  1. 我正在寻找一种尺寸尽可能轻的解决方案,因为运行应用程序的桌面类型太便宜了(配置尽可能低(,因此选择 SQLite 而不是其他一些数据库提供程序。
  2. 应用的部署方式应使其无法从一台计算机复制粘贴到另一台计算机。这也可以通过简单,不太安全的方法来实现,因为操作员并不精通技术,并且只知道有关计算机的最低限度的知识,例如复制粘贴。

所以我遇到了一个低级解决方法,因为我将是设置应用程序的人。

在初始化应用程序时,通过使用 express/node 读取环境变量,可以使用计算机的名称设置数据库中的加密条目。

process.env.COMPUTERNAME

或者使用该特定计算机特有的其他系统变量,然后在每次登录时比较存储的值和当前值。

正如Joachim在他的评论中已经说过的那样,如果应用程序可以访问互联网,您可以在服务器上检查许可证密钥或类似的东西。

也许像 PKG 这样的东西可以提供帮助,它将您的源代码编译成一个可执行文件。PKG on npmjs

最新更新