gpt4 book ai didi

amazon-web-services - AWS WAF 如何将 IP 路径的速率限制为低于 2000 个请求/分钟

转载 作者:行者123 更新时间:2023-12-03 01:32:19 33 4
gpt4 key购买 nike

我有一条路径(例如 mysite.com/myapiendpoint),该路径对于服务来说既是资源密集型的,又非常容易受到机器人滥用。我需要将对特定路径的访问速率限制为每个客户端 IP 地址每分钟 10 个请求。如何做到这一点?

我正在托管一个 EC2 实例,前面有 CloudFront 和 AWS WAF。我启用了标准的“基于速率的规则”,但每个 IP 地址每分钟至少 2,000 个请求对于我的应用程序来说绝对无法使用。

我正在考虑为此使用 API Gateway,并且过去曾使用过它,但据我了解,它的速率限制不是基于 IP 地址,因此机器人只会耗尽限制,而合法用户会不断被拒绝端点的使用。

我的网站不使用任何类型的 session ,因此我认为我无法在服务器本身中进行任何类型的速率限制。另请记住,我的网站是一个单人操作的网站,而且我对 AWS 还有些陌生:)

如何将每个 IP 的使用量限制为每分钟 10 个请求(最好在 WAF 中)?

[编辑]

经过更多研究,我想知道是否可以启用 header 转发到源(运行节点/express)并使用速率限制器包。这是一个可行的解决方案吗?

最佳答案

我不知道这对您是否仍然有用 - 但我刚刚从 AWS 支持那里得到了提示。如果多次添加限速规则,可以有效减少每次的请求数量。基本上,每次添加规则时,都会计算每个 IP 的额外请求。假设一个 IP 发出一个请求。如果您应用了 2 个速率限制规则,则该请求将被计数两次。所以基本上,IP 不需要发出 2000 个请求,而只需发出 1000 个请求就会被阻止。如果您添加 3 条规则,它将对每个请求计数 3 次 - 因此该 IP 将在 667 个请求时被阻止。

他们澄清的另一件事是,“窗口”是 5 分钟,但如果在该窗口的任何地方违反总数,它将被阻止。我认为 WAF 只会在 5 分钟后评估请求。例如。假设您有一个规则可以在 5 分钟内处理 2000 个请求。假设某个 IP 在第一分钟发出 2000 个请求,然后在接下来的 4 分钟内仅发出 10 个请求。我最初了解到 IP 仅在 5 分钟后才会被阻止(因为 WAF 评估 5 分钟窗口)。但显然,如果 IP 超过该窗口中任何地方的限制,它将立即被锁定。因此,如果该 IP 在第 1 分钟内发出 2000 个请求,那么它实际上会从第 2、3、4 和 5 分钟被阻止。但从第 6 分钟开始将再次被允许。这对我来说澄清了很多。话虽如此,我还没有对此进行测试。我认为 AWS 支持技术人员知道他在说什么 - 但绝对值得首先测试。

关于amazon-web-services - AWS WAF 如何将 IP 路径的速率限制为低于 2000 个请求/分钟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52543287/

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