【问题标题】:How to restrict read access by admins on firebase firestore database?如何限制管理员对 Firebase Firestore 数据库的读取访问权限?
【发布时间】:2018-09-16 08:24:34
【问题描述】:

我目前正在为我的 iOS 应用程序使用 Cloud Firestore,它允许用户将他们的费用存储到数据库中,但为了保护隐私,有什么方法可以确保我无法读取他们的数据正在输入到数据库中。虽然查询和所有仍然有效,但我或任何管理员都无法看到用户在他们的数据库中输入了什么?

【问题讨论】:

  • 就像 Doug 说的,我不相信这个功能存在。我唯一能想到的就是使用一些编码。这会增加您的工作量,但可能会混淆输入,从而使数据无法公开读取。
  • Paulo 是个好主意:使用只有客户端知道的密钥加密值可以防止任何中间人(包括数据库管理员)读取该值。您可以将其发布为答案吗?

标签: swift firebase google-cloud-firestore privacy firebase-security


【解决方案1】:

不存在这样的功能。通过控制台进行管理员访问,并且 Admin SDK 能够随时读取所有集合和文档。

【讨论】:

    【解决方案2】:

    正如@Frank van Puffelen 建议的那样:

    通过加密对数据进行模糊处理,可以防止任何不受欢迎的眼睛查看任何信息。这将增加您的工作量,因为您需要在应用程序的任一端(客户端和服务器)执行加密和解密。

    我相信,您可以利用 firebase 的云代码,最大限度地减少在设备上执行的代码量,但我从未尝试过,因此无法确认。

    就加密密钥而言,您有几个选择:

    • 用户密码:这是确保加密的一种方法,不会向任何管理员泄露密钥,因为任何查看者都已经对 firebase 中的密码进行了混淆处理。唯一的问题是用户将被锁定在密码中,因为更改密码会阻止解密。
    • 本地存储:您可以将密钥本地存储在设备上,这意味着用户可以在第一次启动应用程序时输入密钥或自动生成密钥。然后,您可以将其存储在应用程序的 default key 存储中,并在需要时检索。虽然我认为这是最安全的做法,但这意味着您的应用无法跨 iCloud 设备使用,因为密钥将存储在本地。
    • 最后是CloudKit,它允许您将数据存储在云中。这是私有的,只有用户的云设备可以访问。

    我意识到这个示例中没有代码,我目前不在办公桌前,对此我很抱歉,如果其他人想编辑一些代码示例,我将不胜感激。

    我希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-21
      • 2018-12-07
      • 1970-01-01
      • 2017-02-01
      • 2021-10-28
      • 2015-07-27
      相关资源
      最近更新 更多