首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我的Firebase云修复数据库是安全的还是易受攻击的?

我的Firebase云修复数据库是安全的还是易受攻击的?
EN

Stack Overflow用户
提问于 2019-10-12 14:32:18
回答 1查看 294关注 0票数 1

我需要帮助,以确定我的Firebase云修复设置是否安全或易受黑客攻击。

在数据库中,我有一个名为userids的集合,它包含许多文档。每个文档都包含与用户is为文档名称的用户相关的数据。这方面的一个例子是:

代码语言:javascript
复制
userids (collection)
    123456 (document)
        field1: "..."
        field2: "..."
        field3: "..."
    777777 (document)
        field1: "..."
        field2: "..."
        field3: "..."
    999999 (document)
        field1: "..."
        field2: "..."
        field3: "..."

然后,我需要的功能如下:

·给定用户as (如userid=123456 ),客户端或服务器必须能够只将数据读写到名称等于123456的文档(客户机/服务器不能将数据读写到名称为777777或999999的文档)。

*任何人在任何情况下都不得查阅数据库中存在的文件清单或任何这些文件的名称。

我执行这一行为的安全规则目前是:

代码语言:javascript
复制
rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      allow read, write;
    }
  }
}

现在,假设数据库中的所有用户实际上都是SHA256哈希值,它们唯一地表示每个用户。假设这个SHA256哈希仅为用户所知,这个设置是否安全,因为要从一个文档中读取/写入您需要知道用户哈希的文档?有没有办法让人找出数据库中所有文档的名称?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-10-12 14:58:50

根据您当前的规则,任何人都可以从数据库中准备任何内容。他们不仅可以获取每个单独的文档,而且(据我所见),他们还可以在知道自己所在的集合之后,列出的所有文档。既然userids并不难猜,我想说你在这里很容易被滥用。

更安全的方法是只允许他们知道文档的完整路径/ID,而不允许他们在集合中列出文档。您可以通过使用更多的Firestore粒度规则,将read分解为listget来实现这一点。

代码语言:javascript
复制
rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      allow get;
    }
  }
}

这允许他们获得一个文档,如果他们知道它的完整路径,但没有得到所有文档的列表。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58355189

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档