如何阻止 Azure APIM 中的恶意请求反复达到速率或配额限制?

Posted

技术标签:

【中文标题】如何阻止 Azure APIM 中的恶意请求反复达到速率或配额限制?【英文标题】:How do you stop malicious requests in Azure APIM from repeatedly hitting your rate or quota limits? 【发布时间】:2021-06-29 16:47:03 【问题描述】:

您有一个开放式 Azure API 网关,任何人都可以使用它,并且您希望保护自己免受同一 IP 或多个 IP 后面的同一个人发送垃圾邮件的 API。

可以在 API 管理中配置一些策略来:

Limit call rate by subscription Limit call rate by key Set usage quota by subscription Set usage quota by key Restrict caller IP's

通过订阅(特定消费者)或密钥(特定应用)设置限制将不起作用,因为您的 API 对公众开放。即使您有 auth 所需的密钥,这也不会阻止用户使用未经授权的密钥向网关发送垃圾邮件。逐个限制调用方 IP 的最后一个选项并不能从一开始就阻止问题的发生。

您如何防止同一用户 (IP) 反复破坏您的速率或配额限制?此外,您将如何防止同一用户跨多个 IP 执行此操作?

我的猜测是,Azure's DDoS Protection Basic 中可能包含这方面的内容,但我觉得我无法从这些文档中得到具体的答案。

【问题讨论】:

【参考方案1】:

标准版中包含您要查找的内容:

DDoS 防护标准可立即自动缓解 攻击,一旦检测到。

成本保证:接收数据传输和应用程序横向扩展 因文件记录而产生的资源成本的服务信用 DDoS 攻击。

见:https://docs.microsoft.com/en-us/azure/ddos-protection/ddos-protection-overview

【讨论】:

如何阻止类似 n 次未经授权的点击? 第一个将在 Azure 将请求标记为 DDOS 攻击后阻止请求。第二个确保您无需为 DDOS 攻击产生的负载付费。 但是如果 Azure 不将其识别为 DDoS 攻击,因为它不是,该怎么办?假设这是一个受信任的设备,其密码过时且反复访问服务器?

以上是关于如何阻止 Azure APIM 中的恶意请求反复达到速率或配额限制?的主要内容,如果未能解决你的问题,请参考以下文章

如何将请求中的值复制到 Azure API 管理策略中的响应中

Azure APIM URL 引发 System.Net.WebException - SSL/TLS 如何在 azure web api 和 azure APIM 中发挥作用?

如何获取 Azure APIM 健康检查和详细信息

如何在 Azure APIM 中获取 API 的订阅者 ID?

Azure APIM:使用发送请求模式发送客户端证书

api 的 Azure Apim 身份验证