database - 我应该在 Electron 中使用本地存储进行数据库配置吗?

标签 database security electron local-storage

我写了一个 Electron 应用程序。它工作正常。我使用本地存储来保存可以在应用程序中进行的所有选项。这包括数据库配置。
在浏览器中,这可能是个好主意,因为网站可能会破解它?
这不是一个网站,而是一个 Electron 应用程序,除了主索引 html 文件外,它不会加载任何网页。
我应该使用本地存储进行数据库配置吗?
那么,如果我关心基本安全性,我应该使用本地存储进行数据库配置吗?它不是银行(不需要哈希),但它不应该向全世界开放。
除了主要问题外,还有一些可选的子问题。

  • 如果这不是一个好主意,我应该用什么代替?
  • 如果这不是一个好主意,那么当我决定将什么内容放入 html 时,它怎么会被黑客入侵?
  • 本地存储不是文件。设置是否有可能丢失和消失?
  • 最佳答案

    我假设如下:

  • 您使用两层架构。用 Electron 和数据库编写的客户端。
  • 您将数据库的凭据放入由 Electron 应用程序操作的本地存储中。
  • 数据库正在存储非公开数据,或其他需要某种完整性或 secret 性保护的数据。
  • 数据库和架构是 Multi-Tenancy 的。

  • 如果我上面所说的属实,那么不,您的解决方案不安全。您提供的解决方案不属于硬编码 secret 类别,但非常接近。在内存中,您可能持有一些 secret ,这些 secret 可能赋予用户与他已经拥有的相同级别的权利,例如他的 session cookie 或 token 。您不得放置任何 - 当获得时 - 将允许用户拥有更大的访问权限。
    那么,如何解决这个问题。简单地说你不能。您可能想要混淆或隐藏或加密数据,但混淆可以被破坏,隐藏可以被发现,并且加密的数据必须在某个时刻必须使用 key 解密,该 key 必须位于某处。
    解决方案是一个三层架构,其中一个应用服务器执行身份验证、授权和访问控制。除非您想播放并在数据库中为每个用户提供自己的数据库架构/访问权限,否则这也可能是一个解决方案,但我不知道有人会这样做。

    关于database - 我应该在 Electron 中使用本地存储进行数据库配置吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62594284/

    相关文章:

    php - 尝试实现 "Like"功能和 "Wishlist"功能。两者都有 1 个中间表?

    mysql - 如何在 MySQL 中用值替换 NULL?

    php - PDO密码安全

    mysql - 最佳实践 : mysql remote mobile devices sync over 3G connection

    c - 从二进制文件中读取静态变量

    java.security.SignatureException : Signature does not match 异常

    node.js - Socket.IO和Electron无法发射或接收

    node.js - 如何使用Asar打包应用程序,但不包括Electron

    angularjs - 自举下拉列表不适用于 Electron

    ruby-on-rails - Rails 3 - 如何删除已创建的数据库表?