如何使最终用户无法访问由 Electron App 创建的 SQLite 数据库文件

Posted

技术标签:

【中文标题】如何使最终用户无法访问由 Electron App 创建的 SQLite 数据库文件【英文标题】:How to make an SQLite database file created by an Electron App inaccessible to end users 【发布时间】:2021-09-23 15:20:05 【问题描述】:

我正在构建一个电子应用程序,它将有价值的用户信息以加密或散列形式存储在 SQLite 数据库中。但最终用户将能够轻松访问数据库文件,并可以查看数据库中的结构和表。这不是不可取吗。我该如何防止这种情况?我的选择/策略是什么?

【问题讨论】:

【参考方案1】:

因为电子应用程序是用户安装在他的计算机上的东西,所以无论你对它做什么,他都可以直接访问它。您可以混淆该过程,但最终确定的用户会找到您在该数据库中存储的任何内容。

您最好的选择是使用 api 服务器将数据推送到服务器数据库或从服务器数据库中提取数据,而不是在用户的计算机上。

【讨论】:

感谢您的意见。我正在创建一个密码管理器(一个简单的项目,以便学习 nodejs 和电子)。它作为桌面应用程序的全部意义在于将敏感材料存储在远离网络的地方。

以上是关于如何使最终用户无法访问由 Electron App 创建的 SQLite 数据库文件的主要内容,如果未能解决你的问题,请参考以下文章

如何使 SQLite 与 Angular 4+、Electron 和 NodeJS 一起工作

如何使 Node API 只能由 Web 应用程序访问?

Electron VueJS - 构建错误 - 无法注册应用程序协议。在 app.asar 中找不到 ENOENT、\dist_electron\bundled

Electron:无法加载预加载脚本:Resources/app.asar/src/preload.js

如何使R中无法访问全局环境中用户定义函数的源代码? (用于教育目的)

从 Visual Studio 运行 - 无法加载资源:net::ERR_CONNECTION_REFUSED - Angular、Net(5.0) app、Electron