【问题标题】:How can I set Rules in Firebase so that only my app can write on my database firestore?如何在 Firebase 中设置规则,以便只有我的应用程序可以在我的数据库 firestore 上写入?
【发布时间】:2020-02-15 13:37:31
【问题描述】:

Firebase 告诉我,我的数据库不安全,因为我的规则是:

service cloud.firestore {
 match /databases/{database}/documents {
   match /mypath/{document=**} {
    allow write: if true;
    allow read, delete: if false;
   }
  }
 }

我没有关于读取和删除的问题,因为只有使用 FirebaseAdmin 的服务器才能执行此类操作。但是我仍然有关于写操作的问题。这就是我切换到这个配置的原因:

service cloud.firestore {
  match /databases/{database}/documents {
    match /mypath/{document=**} {
      allow write: if request.resource.data.psw == 'mypassword';
      allow read, delete: if false;
    }
  }
}

我的想法是在我的应用程序的配置文件中写入密码,并将它与我想保存在 Firestore 上的数据一起使用。这种方法安全还是有更好的方法?

提前感谢您的任何建议。

【问题讨论】:

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


    【解决方案1】:

    您使用的方案根本不安全,因为您将“秘密”传送到客户端应用程序。您在应用中包含的任何信息本质上都是公共信息,因为很容易分解移动或网络应用数据以了解其工作原理。

    安全的方法是使用 Firebase 身份验证来限制谁可以读取或写入某些数据。这是基于每个用户保护数据库的唯一方法。不可能针对每个应用安全地限制对数据库的访问。

    请记住,您现在拥有的内容还允许任何客户在不提供密码的情况下更新任何已知文档。 request.resource.data.psw 将被正确设置以用于之前最初正确设置的更新。那是因为request.resource.data 包含所有先前文档的内容,以及更新中添加的任何更改。

    如果您由于某种原因无法使用 Firebase 身份验证,那么您现在所做的就是您能做的最好的事情,但确实应该知道它不是很安全。

    【讨论】:

      猜你喜欢
      • 2019-03-12
      • 1970-01-01
      • 2021-09-16
      • 1970-01-01
      • 2017-11-30
      • 2016-03-21
      • 2023-04-05
      • 2022-11-14
      • 2016-12-28
      相关资源
      最近更新 更多