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

IT技术 node.js reactjs angular sqlite express
2021-05-10 09:17:04

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

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

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

所以我遇到了一个低级的解决方法,因为我将成为在客户端机器上设置应用程序的人。

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

process.env.COMPUTERNAME

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

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

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