如何限制Firebase HTTP / Callable函数请求大小?

时间:2019-02-13 23:39:01

标签: firebase google-cloud-functions

我们可以限制来自客户端的HTTP / Callable函数请求大小吗?我知道我们可以在功能到达后用功能检查请求,但是现在为时已晚,因为我们需要先下载不需要的请求以进行验证。

我想知道是否有一种方法可以防止恶意用户使用10 mb的请求来泛洪功能。首先,我认为一旦检测到无效请求,就可以阻止该用户,但我可以看到现在,即使用户被阻止,也无法阻止用户调用该函数。我当然可以阻止该用户访问后端功能,但是请求仍然是从客户端发送的,我担心这可能会影响配额和我们的账单。

2 个答案:

答案 0 :(得分:1)

您是正确的-没有什么可以阻止某人调用任何可调用或HTTP函数。但是,您不能像前面提到的10MB的硬限制那样限制有效负载的大小。但是,极不可能有人恶意地这样做。如果您希望将此功能视为功能,请file a feature request

答案 1 :(得分:1)

对于您的问题,确实没有完美的解决方案。具有公共端点的任何服务都将遭受相同类型的攻击,甚至上千种。您将需要将端点放置在负载均衡器,CDN之后,并使用Web应用程序防火墙(Cloud Armor)实施攻击管理。

  1. 入站数据传输是免费的,因此有助于减少成本部分。

  2. 除非必要,否则不要发布HTTP可调用函数。从其他服务调用这些函数。这样可以启用负载平衡器,缓存和防火墙。

  3. 在Apigee后面部署功能。

  4. 将实施智能化到您的设计中,以使用Cloud Armor等服务检测攻击并阻止访问。简单的逻辑将检测到较大的有效负载,然后在防火墙中阻止有问题的IP地址。但是,这需要#2。