Firestore 限制每小时或每天的读写次数,以防止用户在检查器中设置计时器

Posted

技术标签:

【中文标题】Firestore 限制每小时或每天的读写次数,以防止用户在检查器中设置计时器【英文标题】:Firestore limit reads and writes per hour or per day to prevent user setting a timer in the inspector 【发布时间】:2020-03-12 16:20:55 【问题描述】:

我正在学习 Firebase,我可能会在生产中使用它。我找不到如何阻止登录用户编辑 javascript 代码并自动触发每天数千次读取,而我将不得不为此付费。据我所知,任何想增加我的firebase账单的用户都可以通过编辑javascript代码设置一个计时器,并在firestore数据库中每4秒读写一次。如何防止用户每天或每小时的阅读率?

【问题讨论】:

您找到解决方案了吗?即使涉及云功能,也聊胜于无。 不!但我意识到,如果同一个用户读取同一个文档但它似乎没有很好的文档记录,那么 Firebase 会缓存读取。 不确定这是否可以保护您免受恶意用户的侵害,因为他们可以以不涉及缓存的方式发送请求。 没错!在我看来它并不完美。 Cloud Firestore 的读取限制是否有任何更新。 ? 【参考方案1】:

无法在 Cloud Firestore 上设置读取限制。

您可以在安全规则中实施写入限制,如以下答案所示:How do I implement a write rate limit in Cloud Firestore security rules?。或者,您可以通过 Cloud Functions 传递所有写入,您可以在其中通过自己的代码控制速率。

如果您已设置安全规则以将用户限制为他们需要能够访问的最少数据,并且认为您被滥用,请reach out to Firebase support 寻求个性化的故障排除帮助。

【讨论】:

感谢您的快速答复。我看到我可以设置读取限制的唯一方法是使用云功能仅读取 Firestore 数据库并在某处记录每个用户的读取。 Firestore 将失去实时功能。请告诉我是否有任何方法可以在用户阅读文档时触发云功能!这将让我们在不丢失实时功能的情况下记录用户阅读。还是正在开发的功能? “请告诉我是否有任何方法可以在用户阅读文档时触发云功能” 不,不存在。见***.com/questions/46617690/… 感谢您的回答。您是否知道 Firebase 是否会检测到恶意用户编辑 javascript 并试图增加我的 firebase 账单并阻止他对同一个未更改的 firestore 文档进行不常见的重复读取?因为我似乎无法以任何方式自己找出这个用户活动。 如果您怀疑存在滥用行为,请reach out to Firebase support 寻求个性化的故障排除帮助。

以上是关于Firestore 限制每小时或每天的读写次数,以防止用户在检查器中设置计时器的主要内容,如果未能解决你的问题,请参考以下文章

怎样增加公众号群发次数?

WebApi 接口恶意请求限制

nginx HttpLimitReqModule 是不是支持每小时/每天/每周?

java如何实现限制一个接口每天被调用次数为5次?

在特定的时间段内每天以每小时间隔运行本地通知

MySQL 资源限制