Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何避免对Firebase实时数据库的公共呼叫收费?_Firebase_Firebase Realtime Database - Fatal编程技术网

如何避免对Firebase实时数据库的公共呼叫收费?

如何避免对Firebase实时数据库的公共呼叫收费?,firebase,firebase-realtime-database,Firebase,Firebase Realtime Database,在研究文档之后,我观察到以下关于实时数据库的内容: 我们可以使用任何Firebase实时数据库URL作为REST端点。我们需要做的就是将.json附加到URL的末尾,并从我们最喜欢的HTTPS客户端发送请求 所有进出数据库的流量,包括被安全规则拒绝的操作,都会导致计费成本 这可能是一个巨大的问题,因为 互联网上的任何人都可以向我们的数据库URL发送请求 即使使用安全规则拒绝了这些请求,我们仍将为此收取费用 理论上,恶意用户可以一直调用端点,直到耗尽我们的资源 我确实想到了一些解决办法,比

在研究文档之后,我观察到以下关于实时数据库的内容:

我们可以使用任何Firebase实时数据库URL作为REST端点。我们需要做的就是将.json附加到URL的末尾,并从我们最喜欢的HTTPS客户端发送请求

所有进出数据库的流量,包括被安全规则拒绝的操作,都会导致计费成本

这可能是一个巨大的问题,因为

  • 互联网上的任何人都可以向我们的数据库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请求。但是,规则验证仍然是收费的。。。。。。好吧,这对我们来说已经足够好了!谢谢:)