跳转到内容
搜索文档

速率限制规则

最后更新 查看 MarkdownAgent 设置

速率限制规则用于定义匹配表达式的请求速率阈值,以及达到阈值后的处理动作。您可以用速率限制规则防止网站与 API 被滥用,例如保护登录接口免受暴力破解,或限制单一客户端在固定时间窗口内的 API 调用次数。

新版安全仪表板中,速率限制规则是可用 安全规则 类型之一。安全规则会对匹配指定过滤条件的入站请求执行与安全相关的动作。

部分 Enterprise 客户可在账户级创建速率限制规则集,并部署到多个 Enterprise Zone(区域)。

规则参数

与 Cloudflare 规则引擎中其他规则一样,速率限制规则包含以下基础参数:

  • 使用 Rules language 指定流量匹配条件的表达式
  • 当规则匹配且满足任何附加条件时要执行的操作。对于 rate limiting rules,当速率达到指定限制时执行该操作。

除上述两个参数外,rate limiting rules 还需要以下附加参数:

  • Characteristics(特征):定义 Cloudflare 如何跟踪此规则速率的参数集。
  • Period(周期):评估速率时考虑的时间段(秒)。
  • Requests per period(每个周期的请求数):在时间段内触发 rate limiting rule 的请求数。
  • Duration(持续时间或缓解超时):达到速率后,速率限制规则在此字段定义的时间段内阻止后续请求。
  • Action behavior(操作行为):默认情况下,Cloudflare 会在配置的持续时间(或缓解超时)内应用规则操作,无论此期间的请求速率如何。部分 Enterprise 客户可配置规则以限制超过最大速率的请求,当速率低于配置限制时允许传入请求。

请参阅 速率限制参数了解必需参数与可选参数。

请参阅 Cloudflare 如何确定请求速率,了解这些参数如何用于计算入站请求速率。

与其他应用安全功能的交互

如果你同时使用多种应用安全功能(如 custom rules、Managed Rules 和 Super Bot Fight Mode),了解这些功能如何交互以及它们的执行顺序非常重要。更多信息请参阅安全功能互操作性

重要说明

  • 速率限制规则按顺序评估,部分动作(如 拦截(Block))会中断后续规则评估。动作与行为详情请参阅 动作(Actions)

  • 速率限制规则不适合提供精确到单个源站请求数上限。检测请求与更新计数器存在最高几秒延迟,因此在 Cloudflare 执行阻断或挑战等缓解动作前,仍可能有少量超额请求到达源站。关于计数器范围(包括按数据中心分片)等细节,请参阅 请求速率计算

  • 将速率限制规则应用到通过验证的 bot 可能影响搜索引擎优化(SEO)。更多说明请参见 提升 SEO


可用性

功能 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)才能使用速率限制规则。规则数量取决于具体合同条款。

Footnotes

  1. 仅面向已购买 Bot Management 的 Enterprise 客户。 2 3

  2. 可用性取决于你的 WAF 计划。 2 3 4

  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

  4. Enterprise 客户可通过 API 指定自定义缓解超时周期。 2

  5. Enterprise 客户须在合同中包含应用安全(application security)才能使用速率限制规则。规则数量取决于具体合同条款。

后续步骤

请参阅以下资源:

关于 Terraform 配置示例,请参阅 使用 Terraform 配置速率限制规则


相关资源

这篇文档对您有帮助吗?