速率限制由以下参数组成:
- 使用 Rules language 指定流量匹配条件的表达式。
- 当规则匹配且满足任何附加条件时要执行的操作。对于 rate limiting rules,当速率达到指定限制时执行该操作。
除上述两个参数外,rate limiting rules 还需要以下附加参数:
- Characteristics(特征):定义 Cloudflare 如何跟踪此规则速率的参数集。
- Period(周期):评估速率时考虑的时间段(秒)。
- Requests per period(每个周期的请求数):在时间段内触发 rate limiting rule 的请求数。
- Duration(持续时间或缓解超时):达到速率后,速率限制规则在此字段定义的时间段内阻止后续请求。
- Action behavior(操作行为):默认情况下,Cloudflare 会在配置的持续时间(或缓解超时)内应用规则操作,无论此期间的请求速率如何。部分 Enterprise 客户可配置规则以限制超过最大速率的请求,当速率低于配置限制时允许传入请求。
功能因套餐类型而异。
| 功能 | Free | Pro | Business | Enterprise with app security | Enterprise with Advanced Rate Limiting |
|---|---|---|---|---|---|
| 规则表达式中 可用字段 |
Path、Verified Bot | Host、URI、Path、Full URI、Query、Verified Bot | Host、URI、Path、Full URI、Query、Method、Source IP、User Agent、Verified Bot | 通用请求字段、请求标头字段、Verified Bot、Bot Management 字段1 | 通用请求字段、请求标头字段、Verified Bot、Bot Management 字段1、请求正文字段2 |
| 缓存排除 | 否 | 否 | 是 | 是 | 是 |
| 计数特征 | IP | IP | IP、支持 NAT 的 IP | IP、支持 NAT 的 IP | IP、支持 NAT 的 IP、Query、Host、Headers、Cookie、ASN、Country、Path、JA3/JA4 Fingerprint1、JSON 字段值2、Body2、表单输入值2、Custom |
| 自定义计数表达式 | 否 | 否 | 是 | 是 | 是 |
| 计数表达式中 可用字段 |
不适用 | 不适用 | 全部规则表达式字段、响应代码、响应标头 | 全部规则表达式字段、响应代码、响应标头 | 全部规则表达式字段、响应代码、响应标头 |
| 计数模型 | 请求数 | 请求数 | 请求数 | 请求数 | 请求数、复杂度分数 |
| 速率限制 操作行为 |
在缓解期内执行操作 | 在缓解期内执行操作 | 在缓解期内执行操作 | 在缓解期内执行操作;超过速率时以 block 操作限流 | 在缓解期内执行操作;超过速率时以 block 操作限流 |
| 计数周期 | 10 s | 最长 1 min 的全部支持值3 | 最长 10 min 的全部支持值3 | 最长 65,535 s 的全部支持值3 | 最长 65,535 s 的全部支持值3 |
| 缓解超时周期 | 10 s | 最长 1 h 的全部支持值3 | 最长 1 day 的全部支持值3 | 最长 1 day 的全部支持值3 4 | 最长 1 day 的全部支持值3 4 |
| 规则数量 | 1 | 2 | 5 | 1005 | 100 |
脚注
1: 仅面向已购买 Bot Management 的 Enterprise 客户。
2: 可用性取决于你的 WAF 计划。
3: 支持的计数/缓解周期值列表(秒):
10、15、20、30、40、45、60(1 min)、90、120(2 min)、180(3 min)、240(4 min)、300(5 min)、480、600(10 min)、900、1200(20 min)、1800、2400、3600(1 h)、65535、86400(1 day)。
并非所有计划都支持全部取值。
4: Enterprise 客户可通过 API 指定自定义缓解超时周期。
5: Enterprise 客户须在合同中包含应用安全(application security)才能使用速率限制规则。规则数量取决于具体合同条款。
-
仅面向已购买 Bot Management 的 Enterprise 客户。 ↩ ↩2 ↩3
-
以秒为单位支持的周期值:
10、15、20、30、40、45、60(1 min)、90、120(2 min)、180(3 min)、240(4 min)、300(5 min)、480、600(10 min)、900、1200(20 min)、1800、2400、3600(1 h)、65535、86400(1 day)。 ↩ ↩2 ↩3 ↩4 ↩5 ↩6 ↩7 ↩8 -
Enterprise 客户须在合同中包含应用安全(application security)才能使用速率限制规则。规则数量取决于具体合同条款。 ↩