gpt4 book ai didi

firebase - 添加数据读取限制 firebase firestore

转载 作者:行者123 更新时间:2023-12-02 19:45:28 25 4
gpt4 key购买 nike

我们有一个使用 Firestore 的 iOS 应用。该应用程序仅读取数据(不写入),我们没有用户帐户,数据库上的任何内容都必须受到保护。因此,我们使用了这些幼稚的安全规则

service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read;
}
}
}

但是,Firebase 警告我们(当然,有充分的理由),这会让我们面临风险,原因有二:

  1. 任何用户都可以从数据库中读取任何内容,因此没有什么是安全的。

我不认为这是一个问题,因为我们没有什么必须保密的。至少现在,当然,这可能会改变。

  • 允许无限读取
  • 这就是问题所在。我想恶意用户可以读取我们的数据库数百万次,从而关闭我们或只是迫使我们支付大笔账单(我们使用 Blaze 计划,按需付费)。

    我们如何才能避免这种情况的发生?我在这里看到了类似的问题,但他们没有提供任何有用的建议,How to limit rate of data reads from Firebase?

    我的想法是,我们可以在应用程序中使用匿名用户帐户,然后在我们的安全规则中仅允许在用户“登录”时进行读取(从而任何使用该应用程序的人)。我远不是 Firebase 和安全问题方面的专家,但这是否至少会让某人更难或不可能读取我们的数据库数百万次,因为它必须通过应用程序完成?

    我们如何解决这个问题还有其他建议吗?

    Firebase warning message for bad security rules

    最佳答案

    一旦您允许对文档进行读取访问,就没有真正的方法来限制特定客户端应用程序的读取速率。有了完全公开的阅读规则,互联网上的每个人都可以重复阅读文档来生成账单。不过,发生这种情况的可能性确实很小,您应该向 Firebase support 报告看似虐待的行为。 .

    您可以通过调用您希望客户端能够读取的各个顶级集合来消除警告消息。由于 Firebase 不知道您可能想要允许或禁止访问哪些集合,因此您应该明确说明。例如,每个集合都是这样的:

        match /collection1/{document=**} {
    allow read;
    }
    match /collection2/{document=**} {
    allow read;
    }

    如果您这样做,请务必删除您现在拥有的允许访问所有文档的规则。

    关于firebase - 添加数据读取限制 firebase firestore,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59368783/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com