防护规则参数配置说明

更新时间:
复制为 MD 格式

本文介绍防护规则(DefenseRule)配置相关OpenAPI的通用参数。

conditions配置说明

名称

类型

是否必选

示例值

描述

key

String

必选

IP

匹配字段。取值:URL、URLPath、IP、Referer、User-Agent、Params、Cookie、Content-Type、Content-Length、X-Forwarded-For、Post-Body、Http-Method、Header、Extension、Filename、Server-Port、Host、Cookie-Exact、Query-Arg、Post-Arg。

Bot管理高级自定义规则特有字段:Client-ID、Ja3-Fingerprint、Ja4-Fingerprint、Http2-Fingerprint、Isp-ID、WebSdk、AppSdk。

重要

不同的 WAF 版本支持的匹配字段不同,请以 WAF 控制台对应类型规则中匹配字段为准。

subKey

String

可选

abc

自定义子匹配字段。

说明

并不是每一个自定义规则的匹配字段(key)都有自定义子匹配字段(subKey)。关于不同匹配字段是否支持自定义子匹配字段,请以 WAF 控制台对应类型规则中匹配字段和自定义匹配字段的关系为准。

opValue

String

必选

contain

逻辑符。取值:

  • not-contain:表示不包含。当匹配字段key)取值为 IP 时表示 IP 不属于。

  • contain:表示包含。当匹配字段(key)取值为 IP 时表示 IP 属于。

  • none:表示不存在。

  • ne:表示不等于。

  • eq:表示等于。

  • lt:表示值小于。

  • gt:表示值大于。

  • len-lt:表示长度小于。

  • len-eq:表示长度等于。

  • len-gt:表示长度大于。

  • not-match:表示不匹配。

  • match-one:表示等于多值之一。

  • all-not-match:表示不等于任一值。

  • all-not-contain:表示不包含任一值。

  • contain-one:表示包含多值之一。

  • not-regex:表示正则不匹配。

  • regex:表示正则匹配。

  • all-not-regex:表示正则均不匹配。

  • regex-one:表示正则匹配其中之一。

  • prefix-match:表示前缀匹配。

  • suffix-match:表示后缀匹配。

  • empty:表示内容为空。

  • exists:表示字段存在。

  • inl:表示在列表中。

  • in-list:表示在地址簿中。

  • not-in-list:表示不在地址簿中。

说明

并不是每一个自定义规则的匹配字段(key)都能对应配置全部的逻辑符(opValue)。关于不同匹配字段支持使用的逻辑符,请以 WAF 控制台对应类型规则中匹配字段和逻辑符的关联关系为准。

values

String

必选

abc

匹配内容,根据需要填写相应的内容,多个值之间使用英文逗号(,)分隔。

说明

匹配条件参数中的逻辑符(opValue)、匹配内容(values)参数取值范围与所指定的匹配字段(key)相关。

ratelimit配置说明

名称

类型

是否必选

示例值

描述

target

String

必选

remote_addr

统计对象类型。取值:

  • remote_addr(默认):表示 IP。

  • cookie.acw_tc:表示会话。

  • header:表示自定义 Header。选择自定义 Header 时,必须在 subkey 参数中填写需要统计的 Header 内容。

  • queryarg:表示自定义参数。选择自定义参数时,必须在 subkey 参数中填写需要统计的自定义参数名称。

  • cookie:表示自定义 Cookie。选择自定义 Cookie 时,必须在 subkey 参数中填写需要统计的 Cookie 内容。

  • account:表示账号。

以下参数仅 Bot 高级自定义规则支持:

  • postarg:表示自定义Body参数。选择自定义Body参数时,必须在 subkey 参数中填写需要统计的自定义参数名称。

  • websdk.umid:表示网页端 UMID。

  • appsdk.eeid_umid:表示 APP 端UMID。

subKey

String

可选

abc

统计对象的子特征。当 target 参数值为 cookieheaderqueryargpostarg 时,必须在 subkey 参数中填写对应的信息。

interval

Integer

必选

60

统计时长,单位为秒。即访问次数的统计周期,与阈值(threshold)参数配合。
取值范围为:1~1800 秒。

threshold

Integer

必选

200

在检测时长内,允许单个统计对象访问被防护地址的次数阈值。

ttl

Integer

必选

1800

处置动作的生效时长,单位为秒。
取值范围为:60~86400 秒。

status

JSON

可选

{"code":404,"count":200}

响应码频率设置。以 JSON 字符串格式进行描述,具体包含以下参数:

  • code:Integer 类型,必选 ,指定响应码。

  • count:Integer 类型 ,可选,出现次数阈值,即表示当指定的响应码出现次数超过该阈值时命中防护规则。取值范围:2~50000 次。count 参数与 ratio 参数两者选其一,不可同时配置。

  • ratio:Integer 类型 ,可选 ,出现比例阈值(百分比),即表示当指定的响应码出现比例超过该阈值时命中防护规则。取值范围:1~100。count 参数与 ratio 参数两者选其一,不可同时配置。

distinctStat

Array

可选

[{"key":"URL","opValue":"gt","values":"1"}]

去重统计条件配置。

说明

Bot高级自定义规则支持。具体配置信息,请参见 distinctStat 详细配置

distinctStat 配置说明

名称

类型

是否必选

示例值

描述

key

String

必选

IP

匹配字段。取值:URL、URLPath、IP、Cookie-Exact、Post-Arg、Header、Query-Arg、Ja3-Fingerprint、Ja4-Fingerprint、Http2-Fingerprint、WebSdk、AppSdk。

重要

去重统计的匹配字段与购买的Bot管理防护功能相关,具体支持情况以WAF控制台支持的匹配字段为准。

subKey

String

可选

abc

自定义去重条件子匹配字段。

说明

并不是每一个去重统计条件规则的匹配字段(key)都有自定义子匹配字段(subKey)。关于不同匹配字段是否支持子匹配字段,请以 WAF 控制台 BOT 高级自定义规则中去重统计条件配置下匹配字段和自定义匹配字段的关系为准。

opValue

String

必选

Equal

逻辑符。取值:

  • eq:表示去重后统计频次等于。

  • lt:表示去重后统计频次小于。

  • gt:表示去重后统计频次大于。

value

String

必选

abc

匹配字段的值。

grayConfig配置说明

名称

类型

是否必选

示例值

描述

grayTarget

String

必选

80

灰度对象类型。取值:

  • remote_addr(默认):表示 IP。

  • cookie.acw_tc:表示会话。

  • header:表示自定义 Header。选择自定义 Header 时,必须在 graySubKey 参数中填写需要统计的 Header 内容。

  • queryarg:表示自定义参数。选择自定义参数时,必须在 graySubKey 参数中填写需要统计的自定义参数名称。

  • cookie:表示自定义 Cookie。选择自定义 Cookie 时,必须在 graySubKey 参数中填写需要统计的 Cookie 内容。

以下参数仅 Bot 高级自定义规则支持:

  • websdk.umid:表示网页端 UMID。

  • appsdk.eeid_umid:表示 APP 端UMID。

graySubKey

String

可选

abc

统计对象的子特征。当 grayTarget 参数值为 cookieheaderqueryarg 时,必须在 graySubKey 参数中填写对应的信息。

grayRate

Integer

必选

20

灰度生效百分比。取值范围为:1~100。

timeConfig配置说明

名称

类型

是否必选

示例值

描述

timeScope

String

必选

period

规则生效时间范围。取值:

  • permanent(默认):表示永久生效。

  • period:表示按照时间段生效。

  • cycle:表示周期性生效。

timeZone

Integer

必选

8

规则生效的时区,默认为 8,取值范围:-12~12,其中 0 表示世界时间,8 表示 UTC+8 东八区,-8表示 UTC-8 西八区。

timePeriods

Array

可选

[{"start":1758771729787,"end":1758816000000}]

规则生效的时间段。当 timeScope 参数值为 period 时,必须设置该参数,支持设置多个时间段。具体包含以下参数:

  • start:Long 类型,必选 ,规则生效的起始时间,Unix 时间戳,单位为 ms。

  • end:Long 类型,必选 ,规则生效的结束时间,Unix 时间戳,单位为 ms。

weekTimePeriods

Array

可选

[{"day":"1","dayPeriods":[{"start":0,"end":51644084}]},{"day":"1,2,5","dayPeriods":[{"start":0,"end":42928908}]}]

规则周期性生效的时间段。当 timeScope 参数值为 cycle 时,必须设置该参数,支持设置多个时间段。具体包含以下参数:

  • day:String 类型,必选,规则生效的周期,取值范围:1~7,多个日期使用英文逗号(,)分隔。例如取值为 1 时,表示每周一生效。

  • dayPeriods:Array 类型,必选,规则每天生效的时间段,包括起始时间 start、结束时间 end,支持设置多个时间段。

    • start: Long 型,必选,规则每天生效的起始时间,相对于当天 0 点的毫秒级时间戳,取值范围为[0-86400000),单位为 ms。

    • end: Long 型,必选,规则每天生效的结束时间,相对于当天 0 点的毫秒级时间戳,取值范围为[0-86400000),单位为 ms。