您的Cloud Firestore数据库不安全:任何用户都可以读取您的整个数据库

时间:2020-01-16 04:18:44

标签: firebase flutter google-cloud-firestore

使用Firestore数据库获取内容来构建应用。

规则是:

service cloud.firestore {
  match /databases/{database}/documents {
    // Allow public read access, but only content owners can write
    match /{document=**} {
      allow read: if true
      allow write: if request.auth.uid == request.resource.data.author_uid
    }
  }
}

正如警告所言,我允许将read设置为true,我理解这是一个问题。

如何使Flutter应用可以读取Firestore数据库的内容,但任何随机用户都不能读取?该应用程序是公共的/免费的...等等,所以我不希望人们必须登录。

我是否给我的应用某种代码并进行检查?还是...?

更新: 我看到有匿名登录名,可以解决此问题,但是那太过分了吗?真的有帮助吗?这样可以防止我的应用程序离线使用吗? ...等

2 个答案:

答案 0 :(得分:3)

无法基于它是您的应用程序还是您的代码来保护访问。这根本不是安全性与基于云的服务一起工作的方式。如果您想限制应用程序的合法用户访问,则必须登录这些用户并以某种方式使其合法化。

在这里合法的含义当然取决于您。无论是“他们已登录”(request.auth != null),还是他们验证了自己的电子邮件地址(以便您可以与他们联系(request.auth.token. email_verified == true),还是其他众多选项之一,都可以。< / p>

另请参阅:

答案 1 :(得分:0)

在数据库的“规则”部分中,尝试对它们进行编码,如果用户已登录,则他将具有访问权限。请关注此link,以了解更多信息。