【发布时间】:2020-04-09 15:13:21
【问题描述】:
我们有一个使用 Firestore 的 iOS 应用。该应用程序只读取数据(不写入),我们没有用户帐户,数据库上的任何内容都必须受到保护。出于这个原因,我们使用了这些幼稚的安全规则
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read;
}
}
}
但是,Firebase 已经警告我们(当然,有充分的理由)这会使我们处于危险之中,原因有两个:
- 任何用户都可以从数据库中读取任何内容,因此没有什么是安全的。
我不认为这是一个问题,因为我们没有什么必须保密的。至少现在,当然,这可能会改变。
- 允许无限读取
这就是问题所在。我想恶意用户可能会读取我们的数据库数百万次,从而关闭我们或只是强迫我们支付大笔账单(我们使用 Blaze 计划,即付即用)。
我们怎样才能保护我们免受这种伤害?我在这里看到过类似的问题,但他们没有提供任何有用的建议,How to limit rate of data reads from Firebase?
我的想法是我们可以在应用程序中使用匿名用户帐户,然后在我们的安全规则中只允许在用户“登录”时读取(因此任何人都在使用该应用程序)。我远不是 Firebase 和安全问题方面的专家,但这至少不会让某人更难或不可能因为必须通过应用程序来读取我们的数据库数百万次吗?
还有其他建议我们可以如何解决这个问题吗?
【问题讨论】:
标签: firebase google-cloud-firestore firebase-security