Google cloud firestore 如何在Firestore中维护开放数据库的同时防止数据库滥用

Google cloud firestore 如何在Firestore中维护开放数据库的同时防止数据库滥用,google-cloud-firestore,firebase-security,Google Cloud Firestore,Firebase Security,假设我有一个列出小工具的网站 有一个集合列出了所有的无人机。我把这个收藏留给读者阅读,以确保谷歌能抓取我的网站,并且每个访问的用户都可以阅读所有的无人机,而无需登录/注册 但我担心的是,有一天会有人找到数据库端点或其他东西,并开始获取整个集合,这将花费我进行读取 我怎样才能避开这件事。或者,拥有开放数据的网站(如新闻网站或电子商务网站)将如何实现这一目标。考虑到他们使用Firestore的强大查询功能,你的问题的标题本身就很矛盾。“开放数据库”几乎意味着“滥用的可能性” 如果要完全阻止滥用的可能

假设我有一个列出小工具的网站

有一个集合列出了所有的无人机。我把这个收藏留给读者阅读,以确保谷歌能抓取我的网站,并且每个访问的用户都可以阅读所有的无人机,而无需登录/注册

但我担心的是,有一天会有人找到数据库端点或其他东西,并开始获取整个集合,这将花费我进行读取


我怎样才能避开这件事。或者,拥有开放数据的网站(如新闻网站或电子商务网站)将如何实现这一目标。考虑到他们使用Firestore的强大查询功能

,你的问题的标题本身就很矛盾。“开放数据库”几乎意味着“滥用的可能性”

如果要完全阻止滥用的可能性,必须关闭数据库并控制对它的所有访问。对于Firestore,这意味着使用安全规则关闭所有直接访问,并通过您控制的后端强制所有访问。您的后端必须根据每个请求决定请求是否应该实际查询数据库

即使如此,为API打开的端点仍然可能被滥用,尽管成本(可能)较低


您描述的问题对于选择公开公共端点的所有系统都是通用的。如果你有一个公共端点,就有可能被滥用,只有你的云提供商可以帮助关闭它。因此,如果您怀疑有滥用行为,您应该直接联系您的云提供商进行报告。

听起来您需要限制速率并将结果集限制为一定数量的结果另一种方法是积极缓存/使用CDN,以减少对源服务器的影响。