首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >云修复规则-允许任何人更新文档中的特定字段

云修复规则-允许任何人更新文档中的特定字段
EN

Stack Overflow用户
提问于 2020-02-16 19:52:23
回答 1查看 404关注 0票数 0

我正在开发一个PoC (概念证明)应用程序,用户可以将壁纸下载到他们的设备上。所有数据都使用& Storage提供。

此应用程序没有登录。任何人都可以下载应用程序,并立即下载她或他想要的壁纸。

记住这一点..。I希望有一个计数器来跟踪每个特定墙纸被下载多少次。

当我有了它的“工作”-我在质疑我在火基地建立的规则。

代码语言:javascript
复制
rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      allow read;
      allow write: if request.auth != null;
      allow update: if request.resource.data.counter is number;
    }
  }
}

我的思维过程与上述规则有关:

  • 任何人都可以阅读。
  • 只有经过身份验证的用户才能编写。(我正在使用一个无头CMS管理所有数据;Flamelink;因此,如果数据是一个数字的话,那么唯一经过身份验证的用户是myself.)
  • Update计数器.

)

这是我要质疑的最后一条规则。

这是一种安全的部署到生产中的安全方法吗?

再次-没有登录此应用程序,用户可以下载所有的壁纸,没有身份验证,并将有一个计数器旁边的每一个壁纸,供用户查看多少次每个壁纸已被下载。

EN

回答 1

Stack Overflow用户

发布于 2020-02-20 16:32:48

就该词的任何正常定义而言,这些规则并不是“安全的”。这是他们允许的。任何拥有互联网连接的人,如果知道项目的名称(这很容易获得),可以:

对database

  • Update中任何文档的
  • 查询任何在任何文档中具有counter数值的现有文档(它甚至不必增加,也不必是正整数)

除此之外,任何能够获得Firebase Auth ID令牌的人(同样,对于确定的攻击者来说并不是非常困难),都可以在数据库中完全创建和编写任何文档。如果您说您的应用程序中根本没有Auth,那么这并不是真正的问题,但是如果您的项目被配置为允许任何形式的身份验证,攻击者就有可能开始编写任何东西。

你会收到Firebase的电子邮件,说你的规则不安全,主要是因为你允许每个人阅读所有的东西。

您应该做的是更具体地定义您的安全需求,然后将其转换为实际满足这些需求的规则。如果您希望允许对任何类型的数据库进行未经身份验证的写访问,则会遇到一些麻烦,因为无法确保该访问确实与您试图测量的下载行为相匹配。在管理下载的任何过程中,计算下载量会更好,这可能需要一个比现在更复杂的后端。

但是,如果允许公共读/写访问确实是您想要允许的,那么将您的规则变得更具体会更好。例如,您可以限制匿名用户可以写入的集合,并确保如果这些都是您想要的,那么它们只能增加计数器。

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

https://stackoverflow.com/questions/60252601

复制
相关文章

相似问题

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