应用程序网关上 Web 应用程序防火墙的速率限制允许您检测和阻止发往应用程序的异常高级别的流量。 通过在应用程序网关 WAF v2 上使用速率限制,可以缓解多种类型的拒绝服务攻击,防止客户端意外配置为在短时间内发送大量请求,或控制从特定地理位置到站点的流量速率。
速率限制策略
使用策略中的自定义 WAF 规则配置速率限制。
注释
速率限制规则仅在运行 最新 WAF 引擎的 Web 应用程序防火墙上受支持。 为了确保您使用的是最新的引擎,请选择 CRS 3.2 作为默认规则集。
配置速率限制规则时,必须指定阈值:指定时间段内允许的请求数。 应用程序网关 WAF v2 上的速率限制使用滑动窗口算法来确定流量何时超出阈值并需要丢弃。 在违反规则阈值的第一个时段内,将丢弃与速率限制规则匹配的更多流量。 从第二个时段开始,允许在配置的时段内通过阈值限定的流量,从而产生节流效应。
您还必须指定匹配条件,该条件告诉 WAF 何时激活速率限制。 您可以配置多个速率限制规则,以匹配策略中的不同变量和路径。
应用程序网关 WAF v2 还引入了 GroupByUserSession,必须对其进行配置。 GroupByUserSession 指定如何为匹配的速率限制规则对请求进行分组和计数。
以下三个 GroupByVariables 当前可用:
- ClientAddr – 这是默认设置,这意味着每个速率限制阈值和缓解措施都独立应用于每个唯一的源 IP 地址。
- GeoLocation - 流量根据客户端 IP 地址上的 Geo-Match 按其地理位置进行分组。 因此,对于速率限制规则,来自同一地理位置的流量将分组在一起。
- 无 - 所有流量都分组在一起,并根据速率限制规则的阈值进行计数。 当阈值被突破时,系统将对所有与规则匹配的流量执行操作,并且不会为每个客户端 IP 地址或地理位置维护独立的计数器。 建议将 None 与特定的匹配条件一起使用,例如登录页面或可疑 User-Agent 列表。
速率限制详细信息
对于 Web 应用程序防火墙策略附加到的每个终端节点,将独立计算和跟踪配置的速率限制阈值。 例如,连接到五个不同侦听器的单一 WAF 策略为每个侦听器维护独立的计数器和阈值强制。
速率限制阈值并不总是完全按照定义强制执行,因此不应用于对应用程序流量进行精细控制。 相反,建议使用它来缓解异常的流量速率并保持应用程序可用性。
滑动窗口算法会阻止超过阈值的第一个窗口的所有匹配流量,然后限制未来窗口中的流量。 使用 GeoLocation 或 None 作为 GroupByVariables 来定义用于配置宽匹配规则的阈值时,请谨慎。 配置不正确的阈值可能会导致匹配流量频繁出现短暂中断。