gpt4 book ai didi

Firebase云函数: how to deal with continuous request

转载 作者:行者123 更新时间:2023-12-02 13:16:39 24 4
gpt4 key购买 nike

使用 Firebase(本例中为 Firebase 云功能)时,我们必须为每个字节的带宽付费。

所以,我想知道我们如何处理有人以某种方式找到我们的端点然后故意连续请求(通过脚本或工具)的情况?

我在互联网上进行了一些搜索,但没有看到任何可以帮助的内容。除了this one但并不是真正有用。

最佳答案

由于您没有指定哪种类型的请求,我将假设您指的是 Firebase 云函数上的 http(s)-触发器。

您可以设置多个限制器来“减少”请求消耗的带宽。我就写一些我想到的

1) 限制请求类型

如果您需要的只是 GET 并假设您不需要 PUT,那么您可以先返回 403,然后再进一步进行操作您的云功能。

if (req.method === 'PUT') { res.status(403).send('Forbidden!'); }

2) 如果可以的话进行身份验证

Follow Google's example here并仅允许授权用户使用您的 https 端点。您可以通过验证 token like this SOF answer 来简单地实现此目的至this question .

3) 检查来源

您可以尝试在云函数中进一步检查请求的来源。如果我没记错的话,云函数使您可以完全访问 HTTP 请求/响应对象,以便您可以设置适当的 CORS header 并响应飞行前 OPTIONS 请求。

实验想法1

假设您可以将您的函数放在 load balancer / firewall 后面,并继电器触发它们。它或多或少会破坏云功能的可扩展性的目的,但如果某种形式的 DoS 对您来说比可扩展性更重要,那么您可以尝试创建应用程序引擎中继,将其放在负载平衡器/防火墙后面并处理该层的安全性。

实验想法2

您可以尝试使用 DNS 级别的攻击预防解决方案来解决您的问题,方法是将 cloudflare 之类的东西插入其中。使用 CNAME,以及 Cloudflare Page Rules将 URL 映射到您的云函数。假设这可以吸收影响。像这样:

*function1.mydomain.com/* -> https://us-central1-etc-etc-etc.cloudfunctions.net/function1/$2

现在如果你去

http://function1.mydomain.com/?something=awesome

您甚至可以将 URL 参数传递给您的函数。我读过的策略 in this medium article在夏天,当我需要类似的东西时。

终于

为了让SOF上的问题更加有联系,帮助大家找到答案,here's我发现另一个本质上相似的问题。链接到这里,以便其他人也可以找到它。

关于Firebase云函数: how to deal with continuous request,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47050240/

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