You need to enable JavaScript to run this app.
文档中心
Web应用防火墙

Web应用防火墙

复制全文
下载 pdf
Bot 管理
UpdateBotAnalyseProtectRule - 更新 bot 频率限制或统计防护规则
复制全文
下载 pdf
UpdateBotAnalyseProtectRule - 更新 bot 频率限制或统计防护规则
更新已有的 Bot 统计防护规则,适用于 Bot 频率限制和 Bot 重复统计两类场景。​
注意事项​
  • 服务接口调用总上限:1000 QPS​
  • 单账号调用上限:50 QPS​
请求说明​
  • 请求方式:POST​
  • 请求地址:https://waf.volcengineapi.com/?Action=UpdateBotAnalyseProtectRule&Version=2023-12-25​
请求参数​
下表仅列出该接口特有的请求参数和部分公共参数。更多信息请见公共参数。​
Query​
Action String 必选 示例值:UpdateBotAnalyseProtectRule​
接口名称。当前 API 的名称为 UpdateBotAnalyseProtectRule。​
​
Version String 必选 示例值:2023-12-25​
接口版本。当前 API 的版本为 2023-12-25。​
​
​
Body​
ProjectName String 可选 示例值:default​
所属项目资源名称,获取方式参考ListProjectResources - 获取项目资源列表。​
​
AccurateGroup Object 可选 示例值:--​
高级条件,未配置时无需传入。​
AccurateGroupPriority Integer 可选 示例值:10000000​
高级条件分组实际对应的优先级,创建规则时无需携带该字段,仅在列表展示高级条件分组时返回该值。​
​
Id Integer 可选 示例值:167913​
高级条件分组对应的 ID,创建规则时无需携带该字段,仅在列表展示高级条件分组时用于聚合展示。​
​
Logic Integer 必选 示例值:1​
  • 1:与(AND);​
  • 2:或(OR)。​
​
AccurateRules Object[] 必选 示例值:--​
高级条件中的子规则列表。​
HttpObj String 必选 示例值:request.header.clientip​
匹配规则对应的具体对象。支持的匹配对象如下所示:​
  • request.schema:请求协议;​
  • request.uri:请求 URI;​
  • request.method:请求方法;​
  • request.path:请求路径;​
  • request.queryargs:请求参数;​
  • request.header:请求头;​
  • request.header.ua:请求 User-Agent;​
  • request.header.refer:请求 referer;​
  • request.header.cookie:请求 Cookie 头;​
  • request.header.content-length:请求体长度;​
  • request.header.content-type:请求体格式;​
  • request.header.x-forwarded-for:X-Forwarded-For;​
  • request.header.clientip:客户端 IP;​
  • request.queryargs.{Key}:自定义请求参数(需替换 {Key} 为具体参数名);​
  • request.header.{Key}:自定义请求头(需替换 {Key} 为具体头名称);​
  • request.cookie.{Key}:自定义 Cookie(需替换 {Key} 为具体 Cookie 名称);​
  • response.header:响应头;​
  • response.body:响应体;​
  • response.code:响应状态码;​
  • response.header.content-type:响应头 content-type;​
  • response.header.{Key}:自定义响应头(需替换 {Key} 为具体头名称);​
  • response.body.{Key}:响应体字段(需替换 {Key} 为具体字段名);​
  • request.ja3-hash:JA3 Hash;(仅 byteplus-global 地域适用)​
说明​
不能直接传递 request.queryargs.*、request.header.*、request.cookie.*、response.header.*、response.body.*这类泛化形式,必须携带具体的 Key。​
​
ObjType Integer 必选 示例值:12​
匹配对象类型的枚举值,用于指定高级条件中子规则的匹配对象类型。支持的取值如下所示:​
  • 0:request.schema;​
  • 1:request.uri;​
  • 2:request.method;​
  • 3:request.path;​
  • 4:request.queryargs;​
  • 5:request.header;​
  • 6:request.header.ua;​
  • 7:request.header.refer;​
  • 8:request.header.cookie;​
  • 9:request.header.content-length;​
  • 10:request.header.content-type;​
  • 11:request.header.x-forwarded-for;​
  • 12:request.header.clientip;​
  • 13:request.queryargs.{Key};​
  • 14:request.header.{Key};​
  • 15:request.cookie.{Key};​
  • 17:response.header;​
  • 18:response.body;​
  • 19:response.code;​
  • 20:response.header.content-type;​
  • 21:response.header.{Key};​
  • 22:response.body.{Key};​
  • 23:request.ja3-hash。(仅 byteplus-global 地域适用)​
​
Opretar Integer 必选 示例值:2​
匹配操作符的枚举值,用于指定高级条件中子规则的匹配方式。支持的取值如下所示:​
  • 0:大于;​
  • 1:大于等于;​
  • 2:等于;​
  • 3:小于;​
  • 4:小于等于;​
  • 5:不等于;​
  • 6:包含子串;​
  • 7:不包含子串;​
  • 8:前缀匹配;​
  • 9:前缀不匹配;​
  • 10:后缀匹配;​
  • 11:后缀不匹配;​
  • 12:包含全部匹配集;​
  • 13:不包含全部匹配集;​
  • 14:属于匹配集;​
  • 15:不属于匹配集;​
  • 16:正则匹配;​
  • 17:识别为 IP;​
  • 18:识别为 IPv4;​
  • 19:识别为 IPv6;​
  • 20:识别为私网 IP;​
  • 21:识别为公网 IP;​
  • 22:保留值;​
  • 23:属于 IP 组;​
  • 24:不属于 IP 组;​
  • 25:属于 IP 地理位置;​
  • 26:不属于 IP 地理位置;​
  • 27:包含 IP 情报;​
  • 28:属于 ASN;​
  • 29:不属于 ASN。​
​
Property Integer 必选 示例值:0​
匹配属性类型的枚举值,默认使用 0(除 IP 识别类特殊场景外)。支持的取值如下所示:​
  • 0:Value,适用于大部分匹配对象场景,如请求协议、URI、方法、请求头、客户端 IP、JA3 Hash 等;​
  • 5:IP,仅用于以下 IP 识别类操作​
  • 17(识别为 IP)​
  • 18(识别为 IPv4)​
  • 19(识别为 IPv6)​
  • 20(识别为私网 IP)​
  • 21(识别为公网 IP)​
​
ValueString String 必选 示例值:1.1.1.1​
匹配规则对应的具体值。​
  • 当匹配对象为request.header.{Key}、request.queryargs.{Key}或request.cookie.{Key}等泛化对象时,该字段表示对应Key的匹配值。​
  • 特殊说明:当操作符(Opretar)为17、18、19、20、21且匹配对象(HttpObj)为request.header.clientip时,无需填写该字段;其余操作符场景均需按实际匹配值填写。​
​
​
​
AccurateGroupPriority Integer 可选 示例值:10000000​
高级条件的优先级,列表展示时可根据该值确定拖拽目标位置。​
​
ActionType Integer 必选 示例值:2​
执行的动作。支持的取值如下所示:​
  • 0:观察;​
  • 1:限速;(仅频率限制场景,即StatisticalType=1时支持)​
  • 2:拦截;​
  • 6:JS挑战;​
  • 7:人机验证;​
  • 10:工作量证明;​
  • 11:丢弃。​
​
EffectTime Integer 可选 示例值:66​
动作生效时长,单位为秒。有效范围为 30~86400 秒。​
除 ActionType 为 1(限速)外,创建和更新规则时需填写该字段。​
​
Enable Integer 必选 示例值:1​
启用状态。支持的取值如下所示:​
  • 0:关闭;​
  • 1:开启。​
​
ExemptionTime Integer 可选 示例值:30​
人机挑战、JS挑战或工作量证明的豁免时间,单位为秒。仅当ActionType为以下值时需要填写:​
  • 6:JS挑战​
  • 7:人机验证​
  • 10:工作量证明​
​
Field String 必选 示例值:HEADER:X-Forwarded-For,CLIENTIP,COOKIE:token​
统计规则的统计对象,支持单个或多个字段,多个字段使用英文逗号分隔(最多 10 个)。多个统计对象使用英文逗号拼接,不加空格。​
字段格式分为两类:无需 Key 的枚举值和需要 Key 的枚举值。​
  • 无需 Key 的枚举值包括:​
  • CLIENTIP:客户端 IP (仅StatisticalType=1时支持)​
  • JA3HASH:JA3 哈希值(仅 byteplus-global 地域适用)。​
  • 需要 Key 的枚举值包括:​
  • HEADER:{Header-Name}:指定请求头(例如 HEADER:X-Forwarded-For);​
  • ARGS:{ArgName}:指定请求参数(例如 ARGS:device_id);​
  • COOKIE:{CookieName}:指定 Cookie(例如 COOKIE:token)。​
​
Host String 必选 示例值:wafexample.com​
需要保护的网站域名。​
​
Id Integer 必选 示例值:18673​
规则 ID。​
​
Name String 必选 示例值:登录接口Bot频率限制规则​
规则的名称,​
  • 以中文、字母或数字开头​
  • 允许使用中文、字母、数字、英文句点(.)、下划线(_)和中划线(-)​
  • 长度范围为 1~128 个字符​
​
Path String 必选 示例值:/login​
指定规则适用的请求路径,可填写具体页面路径,也可匹配整站或某个目录下的全部路径(使用通配符*);通配符 *只能出现在路径末尾。​
​
PathThreshold Integer 可选 示例值:20​
当前路径的总访问次数阈值,仅当统计方式为频率限制(StatisticalType=1)时生效,取值范围为 1~1000 次。​
​
RulePriority Integer 必选 示例值:0​
规则生效优先级。取值范围:0~9。不同规则间的优先级不可重复。如需查询优先级,可调用ListBotAnalyseProtectRulePriorityAvailable - 查询 bot 统计防护规则可用优先级。​
​
SingleProportion Double 可选 示例值:0.6​
单个统计对象的占比阈值。仅当StatisticalType为3(重复占比)时启用,此时需传入该字段。取值范围为 [0, 1)。​
​
SingleThreshold Integer 可选 示例值:6​
单个统计对象的次数阈值,仅在统计方式为频率限制(StatisticalType=1)时使用。取值范围 1~1000。​
​
StatisticalDuration Integer 必选 示例值:60​
统计时间窗口,单位为秒。不同统计场景下的取值范围不同:​
  • 频率限制场景(StatisticalType=1):取值范围为 5~1800 秒;​
  • 重复统计场景(StatisticalType=2 或StatisticalType=3):取值范围为 1~60 秒。​
​
StatisticalType Integer 必选 示例值:1​
统计方式。支持的取值如下所示:​
  • 1:访问频率;​
  • 2:重复次数;​
  • 3:重复占比。​
​
UpdateTime String 可选 示例值:2023-10-09T20:02:42Z​
最近更新时间,仅在列表展示接口中返回。​
​
​
返回参数​
本接口无特有的返回参数。更多信息请见返回结构。​
错误码​
您可访问公共错误码,获取更多错误码信息。​

输入示例

POST https://waf.volcengineapi.com/?Action=UpdateBotAnalyseProtectRule&Version=2023-12-25&ProjectName=default
X-Date: 20230711T035055Z
Authorization: HMAC-SHA256 Credential=<AccessKeyId>/20230711/cn-beijing/waf/request, SignedHeaders=content-type;x-content-sha256;x-date, Signature=<Signature>

{
  "Id": 18673,
  "Name": "bot-frequency-login",
  "Host": "wafexample.com",
  "Path": "/login",
  "Enable": 1,
  "StatisticalType": 1,
  "Field": "HEADER:X-Forwarded-For,CLIENTIP,COOKIE:token",
  "StatisticalDuration": 66,
  "SingleThreshold": 6,
  "PathThreshold": 6,
  "RulePriority": 0,
  "ActionType": 2,
  "EffectTime": 66,
  "ExemptionTime": 30,
  "AccurateGroup": {
    "Logic": 1,
    "AccurateRules": [
      {
        "HttpObj": "request.cookie.session_id",
        "ObjType": 15,
        "Property": 0,
        "Opretar": 2,
        "ValueString": "session-123456"
      }
    ]
  }
}

输出示例

{
    "ResponseMetadata": {
        "RequestId": "2026052519200902B2E106B99E273BD181",
        "Action": "UpdateBotAnalyseProtectRule",
        "Version": "2023-12-25",
        "Service": "waf",
        "Region": "cn-beijing"
    },
    "Result": null
}
最近更新时间:2026.06.04 15:36:20
这个页面对您有帮助吗?
有用
有用
无用
无用