本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
基于速率的规则语句
基于速率的规则会跟踪每个源 IP 地址的请求速率,并针对速率超出限制的 IP 触发规则操作。可以将限额设置为每 5 分钟时间范围内的请求数。您可以使用这种规则来临时阻止来自发送过多请求的 IP 地址的请求。默认情况下,Amazon WAF根据来自 Web 请求源的 IP 地址聚合请求,但您可以将规则配置为使用来自 HTTP 标头的 IP 地址,例如X-Forwarded-For,请改用。
Amazon WAF 分别跟踪和管理您使用的基于速率的规则每个实例的 Web 请求。例如,如果您在两个 Web ACL 中提供相同的基于速率的规则设置,则两条规则语句中的每一条都表示基于速率规则的单独实例,并通过 Amazon WAF 进行自己的跟踪和管理。如果在规则组内定义基于速率的规则,然后在多个位置使用该规则组,则每次使用都会创建一个单独的基于速率规则的实例,并通过 Amazon WAF 进行自己的跟踪和管理。
当规则操作触发时,Amazon WAF将操作应用于来自该 IP 地址的其它请求,直到请求速率降到限制以下。操作更改可能需要一两分钟才能生效。
您可以检索由于速率限制而当前阻止的 IP 地址列表。有关信息,请参阅列出根据基于速率的规则而阻止的 IP 地址。
以下注意事项适用于Amazon WAF基于费率的规则:
-
您可以设置的最小速率为 100。
-
Amazon WAF每 30 秒检查一次请求速率,每次计算前 5 分钟的请求数。因此,IP 地址有可能在 30 秒之前以过高的速率发送请求Amazon WAF检测并阻止它。
-
Amazon WAF最多可以屏蔽 10000 个 IP 地址。如果超过 10,000 个 IP 地址同时发送高速率的请求,Amazon WAF只会阻挡其中 10,000 个。
你可以缩小请求的范围Amazon WAF轨迹和计数。为此,你可以在基于速率的语句中嵌套另一个缩小范围的语句。然后,Amazon WAF仅计算与范围缩小语句匹配的请求。有关向下作用域语句的信息,请参见范围缩小语句.
例如,根据您发现的来自美国某个攻击者的最近请求,您可以创建一个基于速率的规则,其中包含以下范围缩小语句:
-
包含以下第二层嵌套语句的 AND 规则语句:
-
指定源自美国的请求的地理匹配语句。
-
一个字符串匹配语句,用于在
User-Agent字符串的标题BadBot.
-
假设您还设置了 1000 的速率限制。对于每个 IP 地址,Amazon WAF计算符合两个嵌套语句条件的请求。两者都不满足的请求不计算在内。如果某个 IP 地址在任何 5 分钟时间范围内的请求数超过 1000 个,则会针对该 IP 地址触发该规则的操作。
另一个例子是,您可能想要限制发送到网站登录页面的请求数。为此,您可以使用以下嵌套字符串匹配语句创建基于速率的规则:
-
这些区域有:检查 请求组件是
URI path. -
这些区域有:匹配类型是
Starts with string. -
这些区域有:要匹配的字符串是
/login.
通过向 Web ACL 中添加此基于速率的规则,您可以将请求限制在登录页面,而不影响网站其余部分。
不可嵌套— 您无法将此语句类型嵌套在其他语句中。您可以将其直接包含在 Web ACL 和规则组中。
(可选)向下作用域语句— 此规则类型采用可选的 scope-down 语句,以缩小基于速率的语句跟踪的请求范围。有关更多信息,请参阅 范围缩小语句。
WCU— 2 加上任何用于嵌套语句的其他 WCU。
此语句使用以下可选设置:
-
(可选)转发的 IP 配置— 默认情况下,Amazon WAF聚合在 Web 请求源中的 IP 地址上,但您可以改为将规则配置为在 HTTP 标头中使用转发的 IP 地址,例如
X-Forwarded-For.Amazon WAF使用标头中的第一个 IP 地址。使用此配置,您还可以指定回退行为以应用于指定标头中具有错误的 IP 地址的 Web 请求。后备行为将请求的匹配结果设置为匹配或不匹配。有关更多信息,请参阅 转发的 IP 地址。
此语句的查找位置
-
规则生成器在您的 Web ACL 中,在控制台上 — 在规则,对于类型,选择基于速率的规则.
-
API 语句–
RateBasedStatement