如何避免对Firebase实时数据库的公共呼叫收费?
在研究文档之后,我观察到以下关于实时数据库的内容: 我们可以使用任何Firebase实时数据库URL作为REST端点。我们需要做的就是将.json附加到URL的末尾,并从我们最喜欢的HTTPS客户端发送请求 所有进出数据库的流量,包括被安全规则拒绝的操作,都会导致计费成本 这可能是一个巨大的问题,因为如何避免对Firebase实时数据库的公共呼叫收费?,firebase,firebase-realtime-database,Firebase,Firebase Realtime Database,在研究文档之后,我观察到以下关于实时数据库的内容: 我们可以使用任何Firebase实时数据库URL作为REST端点。我们需要做的就是将.json附加到URL的末尾,并从我们最喜欢的HTTPS客户端发送请求 所有进出数据库的流量,包括被安全规则拒绝的操作,都会导致计费成本 这可能是一个巨大的问题,因为 互联网上的任何人都可以向我们的数据库URL发送请求 即使使用安全规则拒绝了这些请求,我们仍将为此收取费用 理论上,恶意用户可以一直调用端点,直到耗尽我们的资源 我确实想到了一些解决办法,比
- 互联网上的任何人都可以向我们的数据库URL发送请求
- 即使使用安全规则拒绝了这些请求,我们仍将为此收取费用
- 理论上,恶意用户可以一直调用端点,直到耗尽我们的资源
- 使用类似Cloudflare的东西缓存/代理请求。工作很好。。。直到有人拿到源数据库URL并直接攻击它
- 使用云IAM或域约束限制源数据库对安全代码环境的访问。这是大多数GCP产品所能提供的,但FirebaseRealtime数据库AFAIK却不能
有没有其他方法可以保护数据库不受公共请求的影响?通常,您应该要求使用Firebase身份验证对最终用户进行身份验证,然后实现定义允许谁读取和写入数据库中的哪些节点。restapi允许在请求中使用
如果您不使用Firebase Auth,而是提供internet上任何人对数据库的直接访问,您可能应该不允许使用提供的端点直接访问数据库。应将安全规则配置为不允许所有未经身份验证的访问,并且应要求通过仅执行您希望允许的查询的API端点进行所有访问。您必须自己构建此API,以保护数据库免受滥用查询。通常,您需要使用Firebase身份验证对最终用户进行身份验证,然后实现该API,以定义允许谁读取和写入数据库中的哪些节点。restapi允许在请求中使用
如果您不使用Firebase Auth,而是提供internet上任何人对数据库的直接访问,您可能应该不允许使用提供的端点直接访问数据库。应将安全规则配置为不允许所有未经身份验证的访问,并且应要求通过仅执行您希望允许的查询的API端点进行所有访问。您必须自己构建此API,以保护数据库免受滥用查询。1)假设我们使用Firebase Auth。如果恶意用户向REST API发出请求(凭据无效)。该请求将按预期被拒绝,但我们是否会因为这些错误请求而收到账单?。。。2) 假设我们不使用Firebase Auth。我们使用自定义API身份验证,并有适当的数据库安全规则。如果恶意用户直接向数据库的REST API发出无效请求,即使操作被拒绝,我们也会收到账单,对吗?。。。所以我的问题是,有没有办法避免对数据库的RESTAPI的错误请求付费?1。二号。不。除非你的规则必须读取其他数据以确保请求被拒绝。哦。。。因此,只要我们直接对用户进行身份验证(或使用自定义令牌),就不必担心直接的RESTAPI请求。但是,规则验证仍然是收费的。。。。。。好吧,这对我们来说已经足够好了!谢谢:)1)假设我们使用Firebase Auth。如果恶意用户向REST API发出请求(凭据无效)。该请求将按预期被拒绝,但我们是否会因为这些错误请求而收到账单?。。。2) 假设我们不使用Firebase Auth。我们使用自定义API身份验证,并有适当的数据库安全规则。如果恶意用户直接向数据库的REST API发出无效请求,即使操作被拒绝,我们也会收到账单,对吗?。。。所以我的问题是,有没有办法避免对数据库的RESTAPI的错误请求付费?1。二号。不。除非你的规则必须读取其他数据以确保请求被拒绝。哦。。。因此,只要我们直接对用户进行身份验证(或使用自定义令牌),就不必担心直接的RESTAPI请求。但是,规则验证仍然是收费的。。。。。。好吧,这对我们来说已经足够好了!谢谢:)