应用程序网关上的 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 。
流量限制详细信息
为 Web 应用程序防火墙策略附加到的每个终结点单独计算和跟踪配置的速率限制阈值。 例如,一项单独的 WAF 策略连接到五个不同的侦听器时,会为每个侦听器分别维护独立的计数器并控制阈值。
速率限制阈值并不总是完全按照定义强制执行,因此不应用于对应用程序流量进行精细控制。 相反,建议缓解流量异常率和维护应用程序可用性。
滑动窗口算法阻止超出阈值的第一个窗口的所有匹配流量,然后限制未来时段的流量。 在使用 GeoLocation 或 None 作为 GroupByVariables 配置宽匹配规则的阈值时,请保持谨慎。 配置不当的阈值可能会导致匹配流量频繁出现短中断。