开启限流规则开关后,可针对单个 API 或整个域名配置访问频次阈值,对符合匹配条件(请求方式、参数名/值、IP 归属地等)的请求进行计数,超出阈值即触发限流。可用于缓解暴力破解、批量爬取、CC 攻击以及突发流量导致的资源耗尽。限流规则无系统内置规则,需自行添加自定义规则,支持按 IP、用户、Token 等调用方维度设置差异化频次限制,并支持设置执行动作(观察、重定向、拦截)、优先级与限流顺序(API 限流优先或安全防护优先)。
添加自定义规则
开启限流规则开关后,可以根据业务场景自定义限流规则,对符合匹配条件的请求进行计数,超出阈值即触发限流。
说明:
单个域名最多可以手动添加 50 条自定义限流规则。
1. 在 API 安全 > 规则配置 > 限流规则页面,单击添加规则。
2. 在添加规则窗口中,配置以下参数,单击确定即可创建规则。
3. 添加规则后,可以编辑或删除对应的规则。
配置项说明
域名:展示当前域名。
规则名称:支持自定义输入规则名称。
限流范围
API:选择应用于 API 时,在限流对象中填写需要进行限流的 API 资产路径,支持回车分隔多个 API 资产,最长 128 个字符。
当前域名:选择应用于当前域名时,对域名整站计算访问频次,超出规定频次触发限流。
限流对象
手动填写:选择手动填写时,支持配置检测路径范围,配置后将检测该路径下所有 API 资产。支持通过属于规则或正则表达式匹配灵活定义检测范围。
从现有 API 资产中选择:支持从现有 API 资产中一键选择需要配置规则的多个 API。支持按近 30 天调用量排序、按数据标签筛选。
匹配方式:至少需要添加一条匹配方式,最多可以添加 5 条。
匹配字段 | 匹配参数说明 | 逻辑符号 | 匹配内容说明 |
请求方式 | - | 属于 不属于 正则匹配 | 请选择或输入自定义内容 |
Header 参数名 | - | 每个参数值 属于 不属于 正则匹配 | 回车分隔多个值,最多输入20个 |
Header 参数值 | 请输入参数名 | 属于 不属于 正则匹配 | 回车分隔多个值,最多输入20个 |
GET 参数名 | - | 每个参数值 属于 不属于 正则匹配 | 回车分隔多个值,最多输入20个 |
GET 参数值 | 请输入参数名 | 属于 不属于 正则匹配 | 回车分隔多个值,最多输入20个 |
POST 参数名 | - | 每个参数值 属于 不属于 正则匹配 | 回车分隔多个值,最多输入20个 |
POST 参数值 | 请输入参数名 | 属于 不属于 正则匹配 | 回车分隔多个值,最多输入20个 |
IP 归属地 | - | 属于 不属于 | 地域列表多选,粒度到省市 |
访问频次:必填,超出规定频次触发限流。支持对每个 URL 和全部 URL 进行限流。当在限流范围中配置多个 API 资产时,支持对全部 URL 共同计算访问频次,超出规定频次触发限流。
执行动作
观察:仅记录攻击日志,不进行拦截。
重定向:记录攻击日志,且请求将重定向到指定页面。符合匹配方式的会话请求将执行重定向操作,将请求重定向到指定 URL,但仅支持重定向至当前域名下的 URL。
拦截:记录攻击日志,且进行拦截。支持返回状态码 429 和自定义返回页面两种形式。
优先级:请输入 1-100 的整数,数字越小,代表这条规则的执行优先级越高;相同优先级下,创建时间越晚,优先级越高。
限流顺序
API 限流优先:选择此方式,系统会先对进入 WAF 实例的请求进行限流,再对通过限流的请求进行安全防护过滤。这种方式适合对稳定性要求较高、需要优先保障服务器可用性的场景(例如电商大促、秒杀活动)。
安全防护优先:选择此方式,系统会先对进入 WAF 实例的请求进行安全防护过滤,再对通过安全检测的合法请求进行限流控制。这种方式适合对业务安全性要求较高,或者已知攻击特征需要精准防护的场景。
配置示例
场景一:对不同的调用方进行限流
根据
Header参数test标记不同的用户,对不同的用户进行分级限流,普通用户默认限流2000QPS,特殊用户单独定制规则限流10000QPS。兜底规则:设置针对
test参数出现的每个参数值分别限流2000QPS,优先级低于定制规则。
定制规则:对
test参数出现的参数值test1和参数值test2分别限流10000QPS,优先级高于兜底规则。
场景二:对域名整站和关键接口进行限流
根据 API 或当前域名设置访问频次和相关访问特征,对符合匹配方式的请求进行统计,超出规定频次触发限流。