提问人:MJ X 提问时间:10/21/2023 最后编辑:CSharpRocksMJ X 更新时间:10/21/2023 访问量:48
Azure AppServices 请求限制
Azure AppServices requests throttling
问:
我在 Azure AppServices 中托管了一个 Angular 应用程序,我收到了来自恶意攻击者的太多 AppServices 请求,如何为我的 Azure AppServices 配置请求限制。
答:
有几种选择。将取决于您的具体用例。
选项 1可以将 Azure 应用程序网关与 Web 应用程序防火墙 (WAF) 功能配合使用。下面是一个一般方法:
使用 WAF 设置 Azure 应用程序网关:Set Up Azure Application Gateway with WAF:
- 创建 Azure 应用程序网关实例。
- 在创建过程中,启用 Web 应用程序防火墙并选择适当的 WAF 层和策略。
- 将后端池配置为指向 Azure 应用服务。
配置自定义 WAF 规则:
- 转到应用程序网关下的 Web 应用程序防火墙。
- 创建自定义规则以定义请求阈值。例如,您可以限制在时间间隔内来自单个 IP 地址的请求数。
- 将自定义规则分配给 WAF 策略。
更新 DNS:
- 如果应用有自定义域,请更新其 DNS,使其指向应用程序网关的前端 IP,而不是直接指向应用服务。
应用服务访问限制:
- 若要确保流量仅通过应用程序网关,请转到 Azure 应用服务的“网络”部分。
- 在“访问限制”窗格中,仅允许来自应用程序网关子网的流量,并阻止所有其他流量。
选项 2用于应用级速率限制的速率限制中间件 如果您的 Angular 应用程序具有后端组件(例如 Node.js),则可以使用中间件直接在应用程序中实现速率限制。例如,在 Node.js 后端中,您可以使用 express-rate-limit 包。这允许您为特定路由定义速率限制,或者为整个应用程序定义全局速率限制。
选项 3Azure Functions 代理
Azure Functions 支持代理可以重新路由请求和转换数据。虽然它们本身不支持限制,但您可以将它们与函数代码结合使用,以根据卷、源 IP 等检查和处理请求。
选项 4IP 限制
如果已知的 IP 地址列表源自合法流量,则可以在 Azure 应用服务中设置 IP 限制,以仅允许来自这些 IP 的流量。这无助于速率限制,但可以减少恶意流量。
选项 5用于限制 API 请求的 API 管理。 如果看到的请求是针对在应用服务中托管的任何 API。可以使用 Azure API 管理实现 API 的请求限制
评论