调用BatchCreateDcdnWafRules设置WAF防护规则。
接口说明
调试
您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。
授权信息
请求参数
名称 | 类型 | 必填 | 描述 | 示例值 |
---|---|---|---|---|
PolicyId | long | 是 | 防护策略 ID。 | 1000001 |
RuleConfigs | string | 是 | 防护规则配置。 | [{"name":"example","action":"monitor","conditions":[{"key":"URL","opValue":"match-one","values":"1,2,3,4,5"},{"key":"Header","opValue":"contain-one","subKey":"example_subkey","values":"6,7,8,9,10"}],"ratelimit":{"target":"header","interval":10,"threshold":5,"ttl":1800,"subKey":"example_subkey","status":{"code":"502","count":5}},"ccStatus":"on","effect":"rule","status":"on"}] |
RuleConfigs 取值说明
- RuleConfigs 为列表切片,其中每个结构体代表一条规则。
- 根据 PolicyId 对应的防护策略类型不同,RuleConfigs 的格式也不同。
防护场景 1:Web 正则防护(waf_group)
参数 | 类型 | 必要 | 示例值 | 描述 |
---|---|---|---|---|
status | String | 否 | on | 防护规则开关,取值:on(开启),off(关闭)。默认为 on。 |
action | String | 是 | block | 规则动作,取值:block(拦截),monitor(观察)。 |
wafGroupIds | String | 否 | 1012 | WAF 规则组 ID,默认为"1012",多个 ID 使用半角逗号(,)分隔。 |
waf_group 配置示例:
// Web 正则防护目前仅支持一条策略下配置一条规则。
[
{
"status": "on",
"action": "block"
}
]
防护场景 2:自定义规则(custom_acl)
名称 | 类型 | 是否必选 | 示例值 | 描述 |
---|---|---|---|---|
name | string | 是 | acl_1 | 防护规则名称,支持输入英文字符(大小写)、数字(0~9)及下划线(_),最大输入 64 个字符。 |
status | string | 否 | on | 取值:on(开启),off(关闭)。默认为 on。 |
conditions | Condition | 是 | [ {"key": "URI", "subKey": "","opValue": "contain", "values": "/login.php" }] | 触发规则条件,具体参数请参考表 1 Condition 参数说明。 |
ccStatus | string | 是 | off | 频次控制开关,on(开启),off(关闭)。 |
rateLimit | RateLimit | 否 | { "target": "Header", "subKey": "User-Agent", "interval": 5, "threshold": 2, "ttl": 1800} | 具体的频次控制规则,当 ccStatus 为 on 时必填。具体参数请参考表 2 RateLimit 参数说明。 |
effect | string | 否 | service | 频次控制黑名单的生效范围,当 ccStatus 为 on 时必填,取值:rule(当前规则生效),service(全局生效)。 |
action | string | 是 | deny | 规则动作,取值:deny(拦截)、js(JS 验证)、monitor(观察)。 |
表 1 Condition 参数说明
名称 | 类型 | 是否必选 | 示例值 | 描述 |
---|---|---|---|---|
Key | string | 是 | Query String Parameter | 匹配字段,具体请参考 DescribeDcdnWafFilterInfo 。 |
subKey | string | 否 | action | 匹配子字段,具体请参考 DescribeDcdnWafFilterInfo 。 |
opValue | String | 是 | eq | 逻辑符,具体请参考 DescribeDcdnWafFilterInfo 。 |
values | String | 否 | js | 匹配内容,多值使用英文逗号(,)分隔,具体值参考 DescribeDcdnWafFilterInfo 。 |
表 2 RateLimit 参数说明
名称 | 类型 | 是否必选 | 示例值 | 描述 |
---|---|---|---|---|
target | string | 是 | Header | 频次控制的统计字段,取值:IP:表示统计同一个 IP 发起请求的频率。Header:表示统计包含指定 Header 的请求的频率。Query String Parameter:表示统计包含指定参数的请求的频率。Cookie Name:表示统计包含指定 Cookie 的请求的频率。Session:表示统计来自同一个会话发起请求的频率。 |
subKey | string | 否 | User-Agent | 统一字段的子字段,当 target 为 Header、Query String Parameter 或 Cookie Name 时必填。 |
Interval | Integer | 是 | 5 | 统计时长。取值范围:5~1800。单位:秒。 |
threshold | Integer | 是 | 2 | 统计阈值。取值范围:2~500000。单位:次。 |
ttl | Integer | 是 | 1800 | 黑名单超时时间。取值范围:60~86400。单位:秒。 |
status | RateLimitStatus | 否 | {"code": "404", "ratio": 10} | 响应码统计。具体参数请参考表 3 RateLimitStatus 参数说明。 |
表 3 RateLimitStatus 参数说明
名称 | 类型 | 是否必选 | 示例值 | 描述 |
---|---|---|---|---|
codet | string | 是 | 404 | HTTP 状态码。 |
ratio | Integer | 否 | 10 | 按比例(%)统计。取值:1~100,与 count 字段二选一。 |
count | Integer | 否 | 10 | 按数量统计。取值:2~50000,与 ratio 字段二选一。 |
custom_acl 配置示例:
[
// 访问控制
{
"name": "acl_1",
"status": "off",
"conditions":
[
{
"key": "Query String Parameter",
"subKey": "action",
"opValue": "eq",
"values": "js"
}
],
"ccStatus": "off",
"action": "js"
},
// 频次控制
{
"name": "cc_1",
"status": "on",
"conditions":
[
{
"key": "URI",
"subKey": "",
"opValue": "contain",
"values": "/login.php"
},
{
"key": "IP",
"subKey": "",
"opValue": "ip-contain",
"values": "192.168.0.1/24"
}
],
"ccStatus": "on",
"ratelimit":
{
"target": "Header",
"subKey": "User-Agent",
"interval": 5,
"threshold": 2,
"ttl": 1800,
"status":
{
"code": "404",
"ratio": 10
}
},
"effect": "service",
"action": "deny"
}
]
防护场景 3:白名单(whitelist)
名称 | 类型 | 是否必选 | 示例值 | 描述 |
---|---|---|---|---|
name | string | 是 | on | 防护规则名称,支持输入英文字符(大小写)、数字(0~9)及下划线(_),最大输入 64 个字符。 |
status | string | 否 | on | 防护规则开关,取值:on(默认):开启。off:关闭。 |
conditions | Condition | 是 | [{ "key": "Http-Method","subKey": "","opValue": "match-one", "values": "GET,POST,DELETE" }] | 触发规则的条件。具体参数请参考表 1 Condition 参数说明。 |
tags | String | 是 | [ "waf_group", "custom_acl"] | 防护策略类型列表。 |
regularTypes | String | 否 | [ [ "sqli", "xss","code_exec", "crlf", "lfilei", "rfilei", "webshell","vvip", "other"] | 正则规则类型,当 tags 中出现 waf_group 时,此值可填,可选值:["sqli", "xss", "code_exec", "crlf", "lfilei", "rfilei", "webshell", "vvip", "other"]。 |
regularRules | String | 否 | [ "100001", "100002", "100003"] | 正则规则,当 tags 中出现 waf_group 时,此值可填,且与 regularTypes 只能出现一个,值为字符串格式的六位数字组成的列表。 |
whitelist 配置示例:
[
// 跳过全部场景
{
"name": "wl_all",
"status": "on",
"conditions":
[
{
"key": "Http-Method",
"subKey": "",
"opValue": "match-one",
"values": "GET,POST,DELETE"
}
],
"tags":
[
"waf_group",
"custom_acl",
"ip_blacklist",
"region_block"
]
},
// 跳过 waf_group 的指定规则 id
{
"name": "wl_waf_id",
"status": "off",
"conditions":
[
{
"key": "Cookie Name",
"subKey": "cdn-sec",
"opValue": "prefix-match",
"values": "a7sdsa9dsa8d8sa"
},
{
"key": "Referer",
"subKey": "",
"opValue": "none",
"values": ""
}
],
"tags":
[
"waf_group"
],
"regularRules":
[
"100001",
"100002",
"100003"
]
},
{
// 跳过 waf_group 的指定规则类型
"name": "wl_waf_type",
"status": "on",
"conditions":
[
{
"key": "Query String",
"subKey": "",
"opValue": "exists",
"values": ""
}
],
"tags":
[
"waf_group"
],
"regularTypes":
[
"sqli",
"xss",
"code_exec",
"crlf",
"lfilei",
"rfilei",
"webshell",
"vvip",
"other"
]
},
// 跳过自定义规则
{
"name": "wl_custom_acl",
"status": "on",
"conditions":
[
{
"key": "Http-Method",
"subKey": "",
"opValue": "match-one",
"values": "GET,POST,DELETE"
}
],
"tags":
[
"custom_acl"
]
},
// 跳过 IP 黑名单
{
"name": "wl_ip_blacklist",
"status": "on",
"conditions":
[
{
"key": "Http-Method",
"subKey": "",
"opValue": "match-one",
"values": "GET,POST,DELETE"
}
],
"tags":
[
"ip_blacklist"
]
},
// 跳过区域封禁
{
"name": "wl_region_block",
"status": "on",
"conditions":
[
{
"key": "Http-Method",
"subKey": "",
"opValue": "match-one",
"values": "GET,POST,DELETE"
}
],
"tags":
[
"region_block"
]
}
]
防护场景 4:IP 黑名单(ip_blacklist)
名称 | 类型 | 是否必选 | 示例值 | 描述 |
---|---|---|---|---|
name | string | 是 | ipblacklist | 防护规则名称,支持输入英文字符(大小写)、数字(0~9)及下划线(_),最大输入 64 个字符。 |
status | string | 否 | on | 防护规则开关,取值:取值:on(开启),off(关闭)。默认为 on。 |
remoteAddr | []String | 是 | ["192.168.0.1","10.10.10.10/24","::1","abcd::abcd","BCDE::BCDE"] | 按 IP 地址过滤,具体请参见 DescribeDcdnWafFilterInfo 。 |
action | string | 是 | deny | 规则动作,取值:deny(拦截),monitor(观察)。 |
ipblacklist 配置示例:
[
{
"name": "ipblacklist",
"status": "on",
"remoteAddr": ["192.168.0.1","10.10.10.10/24","::1","abcd::abcd","BCDE::BCDE"],
"action": "deny"
}
]
防护场景 5:区域封禁(region_block)
名称 | 类型 | 是否必选 | 示例值 | 描述 |
---|---|---|---|---|
status | string | 否 | on | 防护规则开关,取值:on(开启),off(关闭)。默认为 on。 |
cnRegionList | string | 否 | 110000,TW,MO | 中国境内封禁区域,逗号分隔。支持封禁的地区请参见 DescribeDcdnWafGeoInfo 。 |
otherRegionList | string | 否 | JP,GB | 中国境外封禁区域,逗号分隔。支持封禁的地区请参见 DescribeDcdnWafGeoInfo 。 |
action | string | 是 | deny | 规则动作,取值:deny(拦截),monitor(观察)。 |
region_block 配置示例:
[
{
"status": "on",
"cnRegionList": "110000,TW,MO",
"otherRegionList": "JP,GB",
"action": "deny"
}
]
防护场景 6:Bot 管理(bot)
规则模板
所有的规则参数都是以下四个,具体值参见具体规则分类。
参数 | 类型 | 必要 | 描述 |
---|---|---|---|
type | String | 是 | 规则类型,参见具体规则分类。 |
status | String | 是 | 规则状态,取值:on(开启),off(关闭)。 |
config | TargetType | 否 | 规则配置,参见具体规则分类。 |
action | String | 否 | 规则动作,参见具体规则分类。 |
规则分类一:防护目标类型
参数 | 类型 | 必要 | 示例值 | 描述 |
---|---|---|---|---|
type | String | 是 | target_type | 规则类型,取值:target_type。 |
status | String | 是 | on | 规则开关,取值:on(开启)。 |
config | TargetType | 否 | {"target":"app"} | 规则配置。格式如下: target:防护目标类型,必填。取值范围包含 web(网页/浏览器)和 app(APP)。 |
action | String | 否 | 置空 | 规则动作,此处不涉及,置为空值。 |
防护目标类型配置示例:
[
{
"type":"target_type",
"status":"on",
"config":{"target":"app"},
"action":""
}
]
规则分类二:Web SDK 集成
参数 | 类型 | 必要 | 示例值 | 描述 |
---|---|---|---|---|
type | String | 是 | web_sdk | 规则类型,取值:web_sdk。 |
status | String | 是 | on | 规则开关,取值:on(开启)。 |
config | WebSdk | 否 | {"mode":"automatic","crossDomain":"example.com"} | 规则配置。格式如下: mode :Web SDK 集成方式,必填。取值范围包含 automatic(自动集成)和 manual(手动集成)。 crossDomain:跨域的域名调用,选填,仅当 mode 取值为 automatic 时生效。 |
action | String | 否 | 置空 | 规则动作,此处不涉及,置为空值。 |
Web SDK 集成配置示例:
[
{
"type":"web_sdk",
"status":"on",
"config":{"mode":"automatic","crossDomain":"example.com"},
"action":""
}
]
规则分类三:防护目标特征
参数 | 类型 | 必要 | 示例值 | 描述 |
---|---|---|---|---|
type | String | 是 | traffic_feature | 规则类型,取值:traffic_feature。 |
status | String | 是 | on | 规则开关,取值:on(开启)。 |
config | TrafficFeature | 是 | {"conditions":[{"key":"Header","subKey":"User-Agent","opValue":"contain","values":"Chrome"},{"key":"IP","subKey":"","opValue":"ip-contain","values":"192.168.0.1/24"}]} | 规则配置。具体请参见 condition。 |
action | String | 否 | 置空 | 规则动作,此处不涉及,置为空值。 |
condition(匹配条件)
参数 | 类型 | 必要 | 示例值 | 描述 |
---|---|---|---|---|
key | String | 是 | Header | 匹配字段,具体值请参见 DescribeDcdnWafFilterInfo 。 |
subKey | String | 否 | User-Agent | 匹配子字段,具体值请参见 DescribeDcdnWafFilterInfo 。 |
opValue | String | 是 | contain | 操作符,具体值请参见 DescribeDcdnWafFilterInfo 。 |
values | String | 否 | Chrome | 匹配内容,多值使用英文逗号分隔,具体值请参见 DescribeDcdnWafFilterInfo 。 |
防护目标特征配置示例:
[
{
"type":"traffic_feature",
"status":"on",
"config":{"conditions":[{"key":"Header","subKey":"User-Agent","opValue":"contain","values":"Chrome"},{"key":"IP","subKey":"","opValue":"ip-contain","values":"192.168.0.1/24"}]},
"action":""
}
]
规则分类四:合法 Bot 管理
参数 | 类型 | 必要 | 示例值 | 描述 |
---|---|---|---|---|
type | String | 是 | intelligence_crawler | 规则类型,取值:intelligence_crawler。 |
status | String | 是 | on | 规则开关,取值:on(开启)。 |
config | IntelligenceCrawler | 否 | {"name":"intelligence_crawler_baidu"} | 规则配置。取值请参见name(搜索引擎蜘蛛白名单)。 |
action | String | 是 | bypass | 规则动作,取值:bypass(放行)。 |
name(搜索引擎蜘蛛白名单)
参数值 | 含义 |
---|---|
intelligence_crawler_all | 合法搜索引擎白名单(Google、Bing、百度、搜狗、360、Yandex) |
intelligence_crawler_baidu | 百度蜘蛛白名单 |
intelligence_crawler_sogou | 搜狗蜘蛛白名单 |
intelligence_crawler_360 | 360 蜘蛛白名单 |
intelligence_crawler_google | Google 蜘蛛白名单 |
intelligence_crawler_bing | Bing 蜘蛛白名单 |
intelligence_crawler_yandex | andex 蜘蛛白名单 |
合法 Bot 管理配置示例:
[
{
"type":"intelligence_crawler",
"status":"on",
"config":{"name":"intelligence_crawler_baidu"},
"action":"bypass"
},
{
"type":"intelligence_crawler",
"status":"on",
"config":{"name":"intelligence_crawler_google"},
"action":"bypass"
}
]
规则分类五:简单脚本过滤(JavaScript 挑战)
参数 | 类型 | 必要 | 示例值 | 描述 |
---|---|---|---|---|
type | String | 是 | js | 规则类型,取值:js。 |
status | String | 是 | on | 规则开关,取值:on(开启),off(关闭)。 |
config | Js | 否 | 置空 | 规则配置,此处不涉及,置为空值。 |
action | String | 是 | js | 规则动作,取值:js(JS 校验)。 |
简单脚本过滤(JavaScript 挑战)配置示例:
[
{
"type":"js",
"status":"on",
"config":{},
"action":"js"
}
]
规则分类六:高级 Bot 防御(动态令牌挑战)
参数 | 类型 | 必要 | 示例值 | 描述 |
---|---|---|---|---|
type | String | 是 | sigchl | 规则类型,取值:sigchl。 |
status | String | 是 | on | 规则开关,取值:on(开启),off(关闭)。 |
config | Sigchl | 否 | {"sigchl":["sig","replay","driver"]} | 规则配置,格式如下: sigchl :请求数据签名验证,必填。取值范围包含 sig(签名验证异常),replay(签名时间戳异常),driver(WebDriver 攻击)。 |
action | String | 是 | sigchl | 规则动作,取值:sigchl(拦截)。 |
高级 Bot 防御(动态令牌挑战)配置示例:
[
{
"type":"sigchl",
"status":"on",
"config":{"sigchl":["sig","replay","driver"]},
"action":"sigchl"
}
]
规则分类七:AI 智能防护
参数 | 类型 | 必要 | 示例值 | 描述 |
---|---|---|---|---|
type | String | 是 | algorithm | 规则类型,取值:algorithm。 |
status | String | 是 | on | 规则开关,取值:on(开启),off(关闭)。 |
config | Algorithm | 否 | 置空 | 规则配置,此处不涉及,置为空值。 |
action | String | 是 | captcha | 规则动作,取值:monitor(观察),captcha(滑块校验)。 |
AI 智能防护配置示例:
[
{
"type":"algorithm",
"status":"on",
"config":{},
"action":"captcha"
}
]
规则分类八:IP 限速
参数 | 类型 | 必要 | 示例值 | 描述 |
---|---|---|---|---|
type | String | 是 | custom_cc_ip | 规则类型,取值:custom_cc_ip。 |
status | String | 是 | on | 规则开关,取值:on(开启),off(关闭)。 |
config | CustomCcIp | 是 | {"interval":20,"target":"IP","threshold":50,"ttl":2800} | 规则配置,具体请参见IP 限速 config 参数说明 。 |
action | String | 是 | monitor | 规则动作,deny(拦截),monitor(观察),captcha(滑块,仅涉及 Web) 。 |
IP 限速 config 参数说明
参数 | 类型 | 必要 | 示例值 | 描述 |
---|---|---|---|---|
target | String | 是 | IP | 频次控制的统计字段,取值:IP。 |
subKey | String | 否 | 置空 | 统一字段的子字段,此处不涉及,置为空值。 |
Interval | Integer | 是 | 20 | 统计时长,取值:5~1800,单位:秒。 |
threshold | Integer | 是 | 50 | 统计阈值,取值:2~50000,单位:次。 |
ttl | Integer | 是 | 2800 | 黑名单超时时间,取值:60~86400,单位:秒。 |
IP 限速配置示例:
[
{
"type":"custom_cc_ip",
"status":"on",
"config":{"interval":20,"target":"IP","threshold":50,"ttl":2800},
"action":"monitor"
},
{
"type":"custom_cc_ip",
"status":"on",
"config":{"interval":10,"target":"IP","threshold":30,"ttl":1800},
"action":"monitor"
}
]
规则分类九:设备限速
参数 | 类型 | 必要 | 示例值 | 描述 |
---|---|---|---|---|
type | String | 是 | custom_cc_dev | 规则类型,取值:custom_cc_dev。 |
status | String | 是 | on | 规则开关,取值:on(开启),off(关闭)。 |
config | CustomCcDev | 是 | {"interval":20,"target":"Header","subKey":"aliwaf_wxbb_umid","threshold":50,"ttl":2800} | 配置规则,具体请参见设备限速 config 参数说明 。 |
action | String | 是 | monitor | 规则动作,deny(拦截),monitor(观察)。 |
设备限速 config 参数说明
参数 | 类型 | 必要 | 示例值 | 描述 |
---|---|---|---|---|
target | String | 是 | Header | 频次控制的统计字段,取值:Header。 |
subKey | String | 否 | aliwaf_wxbb_umid | 统一字段的子字段,取值:aliwaf_wxbb_umid。 |
Interval | Integer | 是 | 20 | 统计时长,取值:5~1800,单位:秒。 |
threshold | Integer | 是 | 50 | 统计阈值,取值:2~50000,单位:次。 |
ttl | Integer | 是 | 2800 | 黑名单超时时间,取值:60~86400,单位:秒。 |
设备限速配置示例:
[
{
"type":"custom_cc_dev",
"status":"on",
"config":{"interval":20,"target":"Header","subKey":"aliwaf_wxbb_umid","threshold":50,"ttl":2800},
"action":"monitor"
},
{
"type":"custom_cc_dev",
"status":"on",
"config":{"interval":20,"target":"Header","subKey":"aliwaf_wxbb_umid","threshold":50,"ttl":2800},
"action":"deny"
}
]
规则分类十:自定义会话限速
参数 | 类型 | 必要 | 示例值 | 描述 |
---|---|---|---|---|
type | String | 是 | custom_cc | 规则类型,取值:custom_cc。 |
status | String | 是 | on | 规则开关,取值:on(开启),off(关闭)。 |
config | CustomCcIp | 是 | {"interval":10,"target":"Query String Parameter","subKey":"arg","threshold":30,"ttl":1800} | 规则配置,具体请参见自定义会话限速 config 参数说明 。 |
action | String | 是 | monitor | 规则动作,deny(拦截),monitor(观察),captcha(滑块,仅涉及 Web) 。 |
自定义会话限速 config 参数说明
参数 | 类型 | 必要 | 示例值 | 描述 |
---|---|---|---|---|
target | String | 是 | Query String Parameter | 频次控制的统计字段,取值:Header(表示统计包含指定 Header 的请求的频率),Query String Parameter(表示统计包含指定参数的请求的频率),Cookie Name(表示统计包含指定 Cookie 的请求的频率)和 Session(表示统计来自同一个会话发起请求的频率)。 |
subKey | String | 否 | arg | 统一字段的子字段,用户自定义。 |
Interval | Integer | 是 | 10 | 统计时长,取值:5~1800,单位:秒。 |
threshold | Integer | 是 | 30 | 统计阈值,取值:2~50000,单位:次。 |
ttl | Integer | 是 | 2800 | 黑名单超时时间,取值:60~86400,单位:秒。 |
自定义会话限速配置示例:
[
{
"type":"custom_cc",
"status":"on",
"config":{"interval":10,"target":"Query String Parameter","subKey":"arg","threshold":30,"ttl":1800},
"action":"deny"
},
{
"type":"custom_cc",
"status":"on",
"config":{"interval":10,"target":"Query String Parameter","subKey":"arg","threshold":30,"ttl":1800},
"action":"captcha"
}
]
规则分类十一:爬虫威胁情报库
参数 | 类型 | 必要 | 示例值 | 描述 |
---|---|---|---|---|
type | String | 是 | intelligence | 规则类型,取值:intelligence。 |
status | String | 是 | on | 规则开关,取值:on(开启),off(关闭)。 |
config | Intelligence | 否 | 置空 | 规则配置,此处不涉及,置为空值。 |
action | String | 是 | captcha | 规则动作,取值:monitor(观察),captcha(滑块校验)。 |
爬虫威胁情报库配置示例:
[
{
"type":"intelligence",
"status":"on",
"config":{},
"action":"captcha"
}
]
规则分类十二:IDC 黑名单封禁
参数 | 类型 | 必要 | 示例值 | 描述 |
---|---|---|---|---|
type | String | 是 | intelligence_idc | 规则类型,取值:intelligence_idc。 |
status | String | 是 | on | 规则开关,取值:on(开启),off(关闭)。 |
config | IntelligenceIdc | 是 | {"name":"intelligence_idc_alibaba"} | 规则配置,取值请参见name 参数说明。 |
action | String | 是 | captcha | 规则动作,取值:deny(拦截),monitor(观察),captcha(滑块校验)。 |
name 参数说明
参数值 | 含义 |
---|---|
intelligence_idc_alibaba | IDC IP 库-阿里云 |
intelligence_idc_tencent | IDC IP 库-腾讯云 |
intelligence_idc_mtyun | IDC IP 库-美团云 |
intelligence_idc_vnet | IDC IP 库-世纪互联 |
intelligence_idc_other | IDC IP 库-其他 |
IDC 黑名单封禁配置示例:
[
{
"type":"intelligence_idc",
"status":"on",
"config":{"name":"intelligence_idc_alibaba"},
"action":"captcha"
},
{
"type":"intelligence_idc",
"status":"on",
"config":{"name":"intelligence_idc_tencent"},
"action":"captcha"
}
]
规则分类十三:伪造蜘蛛拦截
参数 | 类型 | 必要 | 示例值 | 描述 |
---|---|---|---|---|
type | String | 是 | intelligence_fake_crawler | 规则类型,取值:intelligence_fake_crawler。 |
status | String | 是 | on | 规则开关,取值:on(开启),off(关闭)。 |
config | IntelligenceFakeCrawler | 否 | 置空 | 规则配置,此处不涉及,置为空值。 |
action | String | 是 | deny | 规则动作,取值:deny(拦截)。 |
伪造蜘蛛拦截配置示例:
[
{
"type": "intelligence_fake_crawler",
"status": "on",
"config":{},
"action": "deny"
}
]
规则分类十四:Bot 特征识别
参数 | 类型 | 必要 | 示例值 | 描述 |
---|---|---|---|---|
type | String | 是 | app_sdk | 规则类型,取值:app_sdk。 |
status | String | 是 | on | 规则开关,取值:on(开启)。 |
config | AppSdk | 是 | {"featureAbnormal":["simulator","proxy","root","debugged","hook","virtual","antiReplay","signInvalid"],"customSignStatus":"on","customSign":{"key":"header","value":"ua"}} | 规则配置,具体请参见Bot 特征识别 config 参数说明 。 |
action | String | 是 | monitor | 规则动作,取值:deny(拦截),monitor(观察)。 |
Bot 特征识别 config 参数说明
参数 | 类型 | 必要 | 示例值 | 描述 |
---|---|---|---|---|
featureAbnormal | []String | 是 | simulator | signInvalid:APP 签名异常。 antiReplay:签名过期。 simulator:使用模拟器 proxy:使用代理 root:Root 设备 debugged:调试模式。 hook:APP 被 hook。 virtual :APP 多开。 |
customSignStatus | String | 否 | on | 自定义加签字段开关,取值:on(开启),off(关闭)。 |
customSign | CustomSign | 否 | {"key":"header","value":"ua"} | 自定义加签字段,格式如下: key :字段名,必填。取值为 header、arg、cookie。 value:字段值,必填。 |
Bot 特征识别配置示例:
[
{
"type": "app_sdk",
"status": "on",
"config": {"featureAbnormal":["simulator","proxy","root","debugged","hook","virtual","antiReplay","signInvalid"],"customSignStatus":"on","customSign":{"key":"header","value":"ua"}},
"action": "monitor"
}
]
规则分类十五:高级防护(二次打包检测)
参数 | 类型 | 必要 | 示例值 | 描述 |
---|---|---|---|---|
type | String | 是 | app_package | 规则类型,取值:app_package。 |
status | String | 是 | on | 规则开关,取值:on(开启)。 |
config | AppPackage | 否 | {"packageSigns":[{"name":"aaaaa","sign":"bbbb"},{"name":"cccc","sign":"dddd"}]} | 规则配置,具体请参见packageSigns 参数说明。 |
action | String | 是 | monitor | 规则动作,取值:deny(拦截),monitor(观察)。 |
packageSigns 参数说明
参数 | 类型 | 必要 | 示例值 | 描述 |
---|---|---|---|---|
name | String | 是 | aaaaa | 指定合法包名。 |
sign | String | 否 | bbbb | 包签名。 |
高级防护(二次打包检测)配置示例:
[
{
"type": "app_package",
"status": "on",
"config": {"packageSigns":[{"name":"aaaaa","sign":"bbbb"},{"name":"cccc","sign":"dddd"}]},
"action": "deny"
}
]
Bot 管理网页/浏览器防护组合参数配置示例
[
{
"type": "target_type",
"status": "on",
"config":
{
"target": "web"
},
"action": ""
},
{
"type": "web_sdk",
"status": "on",
"config":
{
"mode": "automatic",
"crossDomain": "example.com"
},
"action": ""
},
{
"type": "traffic_feature",
"status": "on",
"config":
{
"conditions":
[
{
"key": "Header",
"subKey": "User-Agent",
"opValue": "contain",
"values": "Chrome"
},
{
"key": "IP",
"subKey": "",
"opValue": "ip-contain",
"values": "192.168.0.1/24"
}
]
},
"action": ""
},
{
"type": "intelligence_crawler",
"status": "on",
"config":
{
"name": "intelligence_crawler_baidu"
},
"action": "bypass"
},
{
"type": "intelligence_crawler",
"status": "on",
"config":
{
"name": "intelligence_crawler_google"
},
"action": "bypass"
},
{
"type": "js",
"status": "on",
"config":
{},
"action": "js"
},
{
"type": "sigchl",
"status": "on",
"config":
{
"sigchl":
[
"sig",
"replay",
"driver"
]
},
"action": "sigchl"
},
{
"type": "algorithm",
"status": "on",
"config":
{},
"action": "captcha"
},
{
"type": "custom_cc_ip",
"status": "on",
"config":
{
"interval": 20,
"target": "IP",
"threshold": 50,
"ttl": 2800
},
"action": "monitor"
},
{
"type": "custom_cc_ip",
"status": "on",
"config":
{
"interval": 10,
"target": "IP",
"threshold": 30,
"ttl": 1800
},
"action": "monitor"
},
{
"type": "custom_cc",
"status": "on",
"config":
{
"interval": 10,
"target": "Query String Parameter",
"subKey": "arg",
"threshold": 30,
"ttl": 1800
},
"action": "deny"
},
{
"type": "custom_cc",
"status": "on",
"config":
{
"interval": 10,
"target": "Query String Parameter",
"subKey": "arg",
"threshold": 30,
"ttl": 1800
},
"action": "captcha"
},
{
"type": "intelligence",
"status": "on",
"config":
{},
"action": "captcha"
},
{
"type": "intelligence_idc",
"status": "on",
"config":
{
"name": "intelligence_idc_alibaba"
},
"action": "captcha"
},
{
"type": "intelligence_idc",
"status": "on",
"config":
{
"name": "intelligence_idc_tencent"
},
"action": "captcha"
},
{
"type": "intelligence_fake_crawler",
"status": "on",
"config":
{},
"action": "deny"
}
]
Bot 管理 APP 防护组合参数配置示例
[
{
"type": "target_type",
"status": "on",
"config":
{
"target": "app"
},
"action": ""
},
{
"type": "traffic_feature",
"status": "on",
"config":
{
"conditions":
[
{
"key": "Header",
"subKey": "User-Agent",
"opValue": "contain",
"values": "Chrome"
},
{
"key": "IP",
"subKey": "",
"opValue": "ip-contain",
"values": "192.168.0.1/24"
}
]
},
"action": ""
},
{
"type": "custom_cc_ip",
"status": "on",
"config":
{
"interval": 20,
"target": "IP",
"threshold": 50,
"ttl": 2800
},
"action": "monitor"
},
{
"type": "custom_cc_ip",
"status": "on",
"config":
{
"interval": 10,
"target": "IP",
"threshold": 30,
"ttl": 1800
},
"action": "monitor"
},
{
"type": "custom_cc_dev",
"status": "on",
"config":
{
"interval": 20,
"target": "Header",
"subKey": "aliwaf_wxbb_umid",
"threshold": 50,
"ttl": 2800
},
"action": "monitor"
},
{
"type": "custom_cc_dev",
"status": "on",
"config":
{
"interval": 20,
"target": "Header",
"subKey": "aliwaf_wxbb_umid",
"threshold": 50,
"ttl": 2800
},
"action": "deny"
},
{
"type": "custom_cc",
"status": "on",
"config":
{
"interval": 10,
"target": "Query String Parameter",
"subKey": "arg",
"threshold": 30,
"ttl": 1800
},
"action": "monitor"
},
{
"type": "custom_cc",
"status": "on",
"config":
{
"interval": 10,
"target": "Query String Parameter",
"subKey": "arg",
"threshold": 30,
"ttl": 1800
},
"action": "deny"
},
{
"type": "app_sdk",
"status": "on",
"config":
{
"featureAbnormal":
[
"simulator",
"proxy",
"root",
"debugged",
"hook",
"virtual",
"antiReplay",
"signInvalid"
],
"customSignStatus": "on",
"customSign":
{
"key": "header",
"value": "ua"
}
},
"action": "monitor"
},
{
"type": "app_package",
"status": "on",
"config":
{
"packageSigns":
[
{
"name": "aaaaa",
"sign": "bbbb"
},
{
"name": "cccc",
"sign": "dddd"
}
]
},
"action": "deny"
}
]
防护场景 7:扫描防护(anti_scan)
规则模板
所有的规则参数都是以下四个,具体值请参见对应规则分类。
参数 | 类型 | 是否必选 | 描述 |
---|---|---|---|
type | String | 是 | 规则类型:参见对应规则分类。 |
status | String | 否 | 规则状态,取值:on(开启),off(关闭)。 |
config | Type | 否 | 规则配置:参见对应规则分类。 |
action | String | 否 | 规则动作:参见对应规则分类。 |
规则分类一:高频扫描封禁
参数 | 类型 | 是否必选 | 示例值 | 描述 |
---|---|---|---|---|
type | String | 是 | high_frequency | 规则类型,取值:high_frequency 。 |
status | String | 是 | on | 规则开关,取值:on(开启),off(关闭)。默认为 on。 |
config | HighFrequency | 否 | {"target":"IP","interval":20,"wafBlockThreshold":20,"ttl":1800,"distinctWafRuleThreshold":2} | 规则配置,具体请参见下方结构体字符串。 |
action | String | 否 | deny | 规则动作,取值:deny(拦截),moniter(观察)。 |
- HighFrequency 说明
参数 | 类型 | 是否必选 | 示例值 | 描述 |
---|---|---|---|---|
target | String | 是 | IP | 频次控制的统计字段,取值:IP(IP 地址),Session(会话),Header(自定义 Header),Query String Parameter(自定义参数),Cookie Name(自定义 Cookie)。 |
subKey | String | 否 | yoursubKey | 统计字段的子字段,选择自定义时有效。例如:如果 target 是自定义 Header 时,这个 subKey 就是 Header 的 key。 |
interval | Integer | 是 | 20 | 检测时间范围,取值:5~1800,单位:秒。 |
wafBlockThreshold | Integer | 是 | 20 | 基础防护规则触发次数,取值:3~50000。 |
ttl | Integer | 是 | 1800 | 封禁时间,取值:60~86400,单位:秒。 |
distinctWafRuleThreshold | Integer | 是 | 2 | 触发规则数大于,取值:1~50。 |
[
{
"type":"high_frequency",
"status":"on",
"config":{"target":"IP","interval":20,"wafBlockThreshold":20,"ttl":1800,"distinctWafRuleThreshold":2},
"action":"deny"
}
]
规则分类二:目录遍历封禁
参数 | 类型 | 是否必选 | 示例值 | 描述 |
---|---|---|---|---|
type | String | 是 | directory_traversal | 规则类型,取值:directory_traversal。 |
status | String | 是 | on | 规则开关,取值:on(开启),off(关闭)。默认为 on。 |
config | DirectoryTraversal | 否 | {"target":"IP","interval":10,"threshold":50,"status":{"code":"404","ratio":70,"count":50},"ttl":1800} | 规则配置,具体请参见下方结构体字符串。 |
action | String | 否 | deny | 规则动作,取值:deny(拦截),moniter(观察)。 |
- DirectoryTraversal 说明
参数 | 类型 | 是否必选 | 示例值 | 描述 |
---|---|---|---|---|
target | String | 是 | IP | 频次控制的统计字段,取值:IP(IP 地址),Session(会话),Header(自定义 Header),Query String Parameter(自定义参数),Cookie Name(自定义 Cookie)。 |
subKey | String | 否 | yoursubKey | 统计字段的子字段,选择自定义时有效。例如:如果 target 是自定义 Header 时,这个 subKey 就是 Header 的 key。 |
interval | Integer | 是 | 10 | 检测时间范围,取值:5~1800,单位:秒。 |
threshold | Integer | 是 | 50 | 针对当前防护对象请求次数超过,取值:2~50000。 |
status | RateLimitStatus | 是 | {"code":"404","ratio":70,"count":50} | 响应码。 |
ttl | Integer | 是 | 1800 | 封禁时间,取值:60~86400,单位:秒。 |
- RateLimitStatus 说明
参数 | 类型 | 是否必选 | 示例值 | 描述 |
---|---|---|---|---|
code | String | 是 | 示例值 | HTTP 状态码,取值:404。 |
ratio | Integer | 是 | 示例值 | 404 响应码占比,取值:1~100。 |
count | Integer | 是 | 示例值 | 不存在的目录数量,取值:2~50000。 |
[
{
"type":"directory_traversal",
"status":"on",
"config":{"target":"IP","interval":10,"threshold":50,"status":{"code":"404","ratio":70,"count":50},"ttl":1800},
"action":"deny"
}
]
规则分类三:扫描工具封禁
参数 | 类型 | 是否必选 | 示例值 | 描述 |
---|---|---|---|---|
type | String | 是 | scan_tools | 规则类型,取值:scan_tools。 |
status | String | 是 | on | 规则开关,取值:on(开启),off(关闭)。默认为 on。 |
config | ScanTools | 否 | 空 | 规则配置,这里不填。 |
action | String | 否 | deny | 规则动作,取值:deny(拦截),moniter(观察)。 |
[
{
"type":"scan_tools",
"status":"on",
"config":{},
"action":"deny"
}
]
最终组合参数
[
{
"type":"high_frequency",
"status":"on",
"config":{"target":"IP","interval":20,"wafBlockThreshold":20,"ttl":1800,"distinctWafRuleThreshold":2},
"action":"deny"
},
{
"type":"directory_traversal",
"status":"on",
"config":{"target":"IP","interval":10,"threshold":50,"status":{"code":"404","ratio":70,"count":50},"ttl":1800},
"action":"deny"
},
{
"type":"scan_tools",
"status":"on",
"config":{},
"action":"deny"
}
]
返回参数
示例
正常返回示例
JSON
格式
{
"RequestId": "CB1A380B-09F0-41BB-280B-72F8FD6DA2FE",
"RuleIds": {
"RuleId": [
"100001,200002"
]
}
}
错误码
HTTP status code | 错误码 | 错误信息 | 描述 |
---|---|---|---|
400 | InvalidParameter | The specified parameter is invalid. | 参数错误 |
400 | Policy.NotExist | The specified policy does not exist. | 指定的防护策略不存在。 |
400 | RuleConfigs.Malformed | The specified RuleConfigs format is invalid. | 指定的参数RuleConfigs格式错误。 |
400 | RuleName.AlreadyExists | Rule name already exists in specified policy. | 规则名称在指定的策略中已存在。 |
400 | Rule.QuantityOverflow | Rules are overflowed quantity in specified policy. | 规则在指定的策略中超出配额。 |
403 | %s.NotSupport | The specified resource type %s is not supported. | 不支持指定的资源类型。如需使用该类型资源,请与我们联系。 |
403 | %s.OverQuota | The quantity of %s exceeds the quota. | 该资源的数量超出了配额所规定的范围,如需申请更多的额度,请与我们联系。 |
500 | InternalError | An internal error occurred; please try again later. | 内部错误,请重试,如果多次重试报错请提交工单。 |
访问错误中心查看更多错误码。
变更历史
变更时间 | 变更内容概要 | 操作 |
---|---|---|
2023-08-29 | OpenAPI 错误码发生变更 | 查看变更详情 |