创建Web核心防护规则。
调试
您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。

授权信息
操作 |
访问级别 |
资源类型 |
条件关键字 |
关联操作 |
yundun-waf:CreateDefenseRule |
create |
*全部资源
|
无 | 无 |
请求参数
名称 |
类型 |
必填 |
描述 |
示例值 |
InstanceId |
string |
是 |
WAF 实例 ID。 说明
您可以通过调用 DescribeInstance 接口查看您当前 WAF 实例 ID。 |
waf_v2_public_cn-**** |
TemplateId |
integer |
否 |
要创建的防护规则的防护模板 ID。 说明
仅当 DefenseType 为 template 时,需要传入该参数。 |
1122 |
DefenseScene |
string |
是 |
要创建的 WAF 防护场景。 当防护规则类型 DefenseType 为 template 时,取值:
当防护规则类型 DefenseType 为 resource 时,取值:
当防护规则类型 DefenseType 为 global 时,取值:
|
waf_group |
Rules |
string |
是 |
规则配置内容,以一系列参数构造的 JSON 格式转化成字符串。 说明
根据所指定的防护规则类型(DefenseScene)不同,具体涉及的参数有所不同。详细信息,请参见防护规则参数描述。 |
waf_group |
ResourceManagerResourceGroupId |
string |
否 |
阿里云资源组 ID。 |
rg-acfm***q |
DefenseType |
string |
否 |
防护规则类型。取值:
|
template |
RegionId |
string |
否 |
WAF 实例所属地域。取值:
|
cn-hangzhou |
Resource |
string |
否 |
创建规则对应的防护对象。 说明
仅当 DefenseType 为 resource 时,需要传入该参数。 |
sec****-waf |
防护规则参数描述
模版防护规则(template)
当防护规则类型 DefenseType 为 template 时,具体的规则配置内容如下。
基础防护规则(waf_group)
参数描述
名称 | 类型 | 是否必选 | 示例值 | 描述 |
status | Integer | 必选 | 1 | 防护规则状态。该参数仅用于创建防护规则,修改防护规则状态时使用 ModifyDefenseRuleStatus 接口的 RuleStatus 参数。取值: - 0:表示关闭。 - 1(默认):表示开启。 |
action | String | 必选 | block | 防护规则动作。取值: - block:表示拦截。 - monitor:表示观察。 |
policyId | Long | 可选 | 1012 | 防护规则组 ID。默认为中等规则组 1012。 |
protectionType | String | 可选 | sema | 防护规则类型。取值: - regular(默认):表示正则防护。 - sema:表示语义防护。 |
config | String | 可选 | {"nonInjectionSql":1} | 自定义配置信息,以 JSON 字符串格式表示。具体配置信息,请参见 config 详细配置。 |
config 详细配置
protectionType 配置为 sema 时(基础防护规则配置为语义防护)
名称 | 类型 | 是否必选 | 示例值 | 描述 |
nonInjectionSql | Integer | 必选 | 1 | 非注入型攻击检测状态。取值: - 0:表示关闭。 - 1(默认):表示开启。 |
示例
{
"DefenseScene": "waf_group",
"TemplateId": 322,
"InstaneId": "waf_cn****",
"Rules": "[{\"status\":1,\"policyId\":1012,\"action\":\"block\"},{\"status\":1,\"action\":\"block\",\"protectionType\":\"sema\",\"config\":\"{\\\"nonInjectionSql\\\":1}\"}]"
}
新版 Web 核心防护规则(waf_base)
参数描述
名称 | 类型 | 是否必选 | 示例值 | 描述 |
autoUpdate | Boolean | 必选 | true | 自动更新,取值: - true:表示开启自动更新。 - false:表示关闭自动更新。 |
config | Array | 必选 | [{"ruleType":"system","ruleDetail":[{"ruleId":13000412,"ruleStatus":1,"ruleAction":"block"}]}] | 需要修改的规则配置,具体配置信息,请参见 config 详细配置。 重要 您可以通过 DescribeBaseSystemRules 接口查询该模板的系统防护规则配置; 通过 DescribeDefenseRules 接口查询该模板的自定义正则规则配置。 |
config 详细配置
名称 | 类型 | 是否必选 | 示例值 | 描述 |
ruleType | String | 必选 | system | 规则类型,取值: - system:基础防护中的系统规则。 - custom: 基础防护中的自定义正则规则 |
ruleBatchOperationConfig | String | 可选 | default | 批量修改规则操作,该字段非空时,RuleDetail 字段必须为空。取值: - default:恢复默认。 - all_on:所有规则状态开启。 - all_off:所有规则状态关闭。 - all_block:所有规则动作拦截。 - all_monitor:所有规则动作观察。 |
ruleDetail | Array | 可选 | [{"ruleId":13000412,"ruleStatus":1,"ruleAction":"block"}]] | 需要修改的规则配置。其中: - ruleId:规则 Id。 - ruleStatus:规则状态。 - ruleAction:规则动作。 |
示例
{
"DefenseScene": "waf_base",
"TemplateId": 322,
"InstaneId": "waf_cn****",
"Rules": "[{\"autoUpdate\":true,\"config\":[{\"ruleType\":\"system\",\"ruleDetail\":[{\"ruleId\":13000412,\"ruleStatus\":1,\"ruleAction\":\"block\"}]}]}]"
}
扫描防护规则(antiscan)
参数描述
名称 | 类型 | 是否必选 | 示例值 | 描述 |
protectionType | String | 必选 | highfreq | 扫描防护规则子类型。取值: - highfreq:表示高频扫描封禁。 - dirscan:表示目录遍历封禁。 - scantools:表示扫描工具封禁。 |
status | Integer | 必选 | 1 | 防护规则状态。该参数仅用于创建防护规则,修改防护规则状态时使用 ModifyDefenseRuleStatus 接口的 RuleStatus 参数。取值: - 0:表示关闭。 - 1(默认):表示开启。 |
action | String | 必选 | block | 防护规则动作。取值: - block:表示拦截。 - monitor:表示观察。 |
config | String | 可选 | {"target":"remote_addr","interval":60,"ttl":180,"count":20} | 自定义配置信息,以 JSON 字符串格式进行描述。具体配置信息,请参见config 详细配置。 |
config 详细配置
protectionType 配置为 highfreq 时(扫描防护规则配置为高频扫描封禁)
名称 | 类型 | 是否必选 | 示例值 | 描述 |
target | String | 必选 | remote_addr | 统计对象类型。取值: - remote_addr(默认):表示 IP。 - cookie.acw_tc:表示会话。 - header:表示自定义 Header。选择自定义 Header 时,必须在 subkey 参数中填写需要统计的 Header 内容。 - queryarg:表示自定义参数。选择自定义参数时,必须在 subkey 参数中填写需要统计的自定义参数名称。 - cookie:表示自定义 Cookie。选择自定义 Cookie 时,必须在 subkey 参数中填写需要统计的 Cookie 内容。 |
subKey | String | 可选 | abc | 统计对象的子特征。当 target 参数值为 cookie、header 或 queryarg 时,必须在 subkey 参数中填写对应的信息。 |
interval | Integer | 可选 | 60 | 检测时长,单位为秒。默认为 60 秒。 取值范围为:5~1800 秒。 |
ttl | Integer | 可选 | 1800 | 封禁时长,单位为秒。默认为 1800 秒。 取值范围为:60~86400 秒。 |
count | Integer | 可选 | 20 | 基础防护规则触发最大次数。默认为 20 次。 取值范围为:3~50000 次。 |
ruleIdCount | Integer | 可选 | 2 | 触发的最大规则数。默认为 2 条。 取值范围为:1~50 条。 |
protectionType 配置为 dirscan 时(扫描防护规则配置为目录遍历封禁)
名称 | 类型 | 是否必选 | 示例值 | 描述 |
target | String | 必选 | remote_addr | 统计和封禁对象。取值: - remote_addr(默认):表示 IP。 - cookie.acw_tc:表示会话。 - header:表示自定义 Header。 - queryarg:表示自定义参数。 - cookie:表示自定义 Cookie。 |
subKey | String | 可选 | 1 | 统计和封禁对象的子特征。仅 target 配置为header、queryarg、cookie时,配置该信息。 |
interval | Integer | 可选 | 60 | 检测时长,单位为秒。默认为 60 秒。 取值范围为:5~1800 秒。 |
ttl | Integer | 可选 | 1800 | 封禁时长,单位为秒。默认为 1800 秒。 取值范围为:60~86400 秒。 |
count | Integer | 可选 | 20 | 基础防护规则触发最大次数。默认为 20 次。 取值范围为:3~50000 次。 |
weight | Float | 可选 | 2 | 404 响应码百分比。默认为 0.7。 取值范围为:0.01~1.0,精确到小数点后两位。 |
uriNum | Integer | 可选 | 2 | 不存在的最大目录数。默认为 50 个。 取值范围为:2~50000 个。 |
示例
{
"InstanceId": "waf_v2_public_****",
"TemplateId": 2222,
"DefenseScene": "antiscan",
"Rules": "[{\"protectionType\":\"scantools\",\"action\":\"block\",\"status\":1},{\"protectionType\":\"dirscan\",\"status\":1,\"action\":\"block\",\"config\":\"{\\\"target\\\":\\\"remote_addr\\\",\\\"interval\\\":10,\\\"ttl\\\":1800,\\\"weight\\\":0.7,\\\"uriNum\\\":50,\\\"count\\\":50}\"},{\"protectionType\":\"highfreq\",\"status\":1,\"action\":\"block\",\"config\":\"{\\\"target\\\":\\\"remote_addr\\\",\\\"interval\\\":60,\\\"ttl\\\":1800,\\\"count\\\":20,\\\"ruleIdCount\\\":2}\"}]"
}
IP 黑名单规则(ip_blacklist)
参数描述
名称 | 类型 | 是否必选 | 示例值 | 描述 |
name | String | 必选 | iptest | IP 黑名单规则名称。长度为 1~255 个字符,可以包含中文、英文、数字、下划线(_)、半角句号(.)或者短划线(-)。 |
status | Integer | 必选 | 1 | 防护规则状态。该参数仅用于创建防护规则,修改防护规则状态时使用 ModifyDefenseRuleStatus 接口的 RuleStatus 参数。取值: - 0:表示关闭。 - 1(默认):表示开启。 |
action | String | 必选 | block | 防护规则动作。取值: - block:表示拦截。 - monitor:表示观察。 |
remoteAddr | Array | 必选 | ["1.1.XX.XX", "3.1.XX.XX/24"] | 要加入的 IP 黑名单列表。使用["ip1","ip2",……]格式表示。 |
示例
{
"InstanceId": "waf_v2_public_****",
"TemplateId": 2222,
"DefenseScene": "ip_blacklist",
"Rules": "[{\"name\":\"iptest1\",\"remoteAddr\":[\"1.1.1.2\",\"3.3.3.3/24\"],\"action\":\"monitor\",\"status\":1},{\"name\":\"iptest2\",\"remoteAddr\":[\"4.4.4.4\",\"5.5.5.5/32\"],\"action\":\"block\",\"status\":1}]"
}
自定义规则(custom_acl)
参数描述
名称 | 类型 | 是否必选 | 示例值 | 描述 |
name | String | 必选 | iptest | 自定义 ACL 规则名称。长度为 1~255 个字符,可以包含中文、英文、数字、下划线(_)、半角句号(.)或者短划线(-)。 |
status | Integer | 必选 | 1 | 防护规则状态。该参数仅用于创建防护规则,修改防护规则状态时使用 ModifyDefenseRuleStatus 接口的 RuleStatus 参数。取值: - 0:表示关闭。 - 1(默认):表示开启。 |
action | String | 必选 | block | 防护规则动作。取值: - block:表示拦截。 - monitor:表示观察。 - js:表示 JS 校验。 - captcha:表示滑块。 - captcha_strict:表示严格滑块。 说明 自定义 ACL 支持的防护规则动作,请以 WAF 控制台中展示的自定义规则动作为准。 |
conditions | Array | 必选 | [{"key":"IP","opValue":"eq","values":"11.XX.XX.1"},{"key":"Header","subKey":"abc","opValue":"contains","values":"test"}] | ACL 的流量特征,以 JSON 字符串格式进行描述,支持填写最多五个匹配条件。具体配置信息,请参见conditions 详细配置。 |
ccStatus | Integer | 必选 | 1 | 是否开启限速。取值: - 0:表示关闭限速。 - 1:表示开启限速。 |
ratelimit | JSON | 可选 | {"target":"remote_addr","interval":5,"threshold":2,"ttl":1800,"status":{"code":404,"count":2}} | 限速详细配置,以 JSON 字符串格式进行描述,仅 ccStatus 配置为 1 时,配置该信息。具体配置信息,请参见ratelimit 详细配置。 |
effect | String | 可选 | rule | 设置限速生效范围,仅 ccStatus 配置为 1 时,配置该信息。取值: - service:表示生效对象为防护对象。 - rule:表示生效对象为单规则。 |
conditions 详细配置
名称 | 类型 | 是否必选 | 示例值 | 描述 |
key | String | 必选 | IP | 匹配字段。取值:URL、URLPath、IP、Referer、User-Agent、Params、Cookie、Content-Type、Content-Length、X-Forwarded-For、Post-Body、Http-Method、Header。 |
subKey | String | 可选 | abc | 自定义子匹配字段。 说明 并不是每一个自定义规则的匹配字段(key)都有自定义子匹配字段(subKey)。关于不同匹配字段是否支持自定义子匹配字段,请以 WAF 控制台自定义规则中匹配字段和自定义匹配字段的关系为准。 |
opValue | String | 必选 | contain | 逻辑符。取值: - not-contain:表示不包含。 - contain:表示包含。 - 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:表示在列表中。 说明 并不是每一个自定义规则的匹配字段(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 内容。 |
subKey | String | 可选 | abc | 统计对象的子特征。当 target 参数值为 cookie、header 或 queryarg 时,必须在 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 参数两者选其一,不可同时配置。 |
示例
{
"InstanceId": "waf_v2_public_****",
"TemplateId": 6242,
"DefenseScene": "custom_acl",
"Rules":"[{\"name\":\"acl_test\",\"action\":\"block\",\"conditions\":[{\"key\":\"URL\",\"opValue\":\"contain\",\"values\":\"abc\"}],\"ratelimit\":{\"target\":\"remote_addr\",\"interval\":5,\"threshold\":2,\"ttl\":1800,\"status\":{\"code\":404,\"count\":2}},\"ccStatus\":1,\"effect\":\"rule\",\"status\":1,\"origin\":\"custom\"}]"
}
白名单规则(whitelist)
参数描述
名称 | 类型 | 是否必选 | 示例值 | 描述 |
name | String | 必选 | whitelistTest | 白名单规则名称。长度为 1~255 个字符,可以包含中文、英文、数字、下划线(_)、半角句号(.)或者短划线(-)。 |
status | Integer | 必选 | 1 | 防护规则状态。该参数仅用于创建防护规则,修改防护规则状态时使用 ModifyDefenseRuleStatus 接口的 RuleStatus 参数。取值: - 0:表示关闭。 - 1(默认):表示开启。 |
conditions | Array | 必选 | [{"key":"IP","opValue":"eq","values":"11.XX.XX.1"},{"key":"Header","subKey":"abc","opValue":"contains","values":"test"}] | 白名单的流量特征,以 JSON 字符串格式进行描述,支持填写最多五个匹配条件。具体配置信息,请参见conditions 详细配置。 |
tags | Array | 必选 | ["waf", "regular"] | 白名单作用模块列表,使用["XX1", "XX2",……]格式。取值: - waf:表示全部模块。 - customrule:表示自定义规则。 - blacklist:表示 IP 黑名单。 - antiscan:表示扫描防护。 - regular:表示基础防护规则。 - regular_rule:表示基础防护特定正则规则。 - regular_type:表示基础防特定正则规则类型。 - major_protection:表示重保场景防护。 - cc:表示 CC 防护。 - region_block:表示区域封禁。 - antibot_scene:表示 BOT 场景防护。 - dlp:表示信息泄露防护。 - tamperproof:表示网页防篡改。 - spike_throttle:表示洪峰限流防护。 |
regularRules | Array | 可选 | [ "111111", "222222" ] | 不检测正则规则 ID 列表,使用["XX1", "XX2",……]格式。仅白名单作用模块配置为基础防护特定正则规则(tags 参数取值为regular_rule)时,配置该参数。 |
regularTypes | Array | 可选 | [ "xss", "css" ] | 不检测正则规则类型列表,使用["XX1", "XX2",……]格式。仅白名单作用模块配置为 Web 应用正则类型(tags 参数取值为regular_type)时,配置该参数。取值: - sqli:表示 SQL 注入。 - xss:表示跨站脚本。 - code_exec:表示代码执行。 - crlf:表示 CRLF。 - lfilei:表示本地文件包含。 - rfilei:表示远程文件包含。 - webshell:表示 WebShell。 - csrf:表示 CSRF。 - other:表示其他。 |
conditions 详细配置
名称 | 类型 | 是否必选 | 示例值 | 描述 |
key | String | 必选 | IP | 匹配字段。取值:URL、URLPath、IP、Referer、User-Agent、Params、Cookie、Content-Type、Content-Length、X-Forwarded-For、Post-Body、Http-Method、Header。 |
subKey | String | 可选 | abc | 自定义子匹配字段。 说明 并不是每一个白名单规则的匹配字段(key)都有自定义子匹配字段(subKey)。关于不同匹配字段是否支持自定义子匹配字段,请以 WAF 控制台白名单规则中匹配字段和自定义匹配字段的关系为准。 |
opValue | String | 必选 | contain | 逻辑符。取值: - not-contain:表示不包含。 - contain:表示包含。 - 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:表示在列表中。 说明 并不是每一个白名单规则的匹配字段(key)都能对应配置全部的逻辑符(opValue)。关于不同匹配字段支持使用的逻辑符,请以 WAF 控制台白名单规则中匹配字段和逻辑符的关联关系为准。 |
values | String | 必选 | abc | 匹配内容,根据需要填写相应的内容。 说明 匹配条件参数中的逻辑符(opValue)、匹配内容(values)参数取值范围与所指定的匹配字段(key)相关。 |
示例
{
"InstanceId": "waf_v2_public_****",
"TemplateId": 9242,
"DefenseScene": "whitelist",
"Rules":"[{\"name\":\"whitelistTest\",\"tags\":[\"regular_rule\",\"customrule\"],\"status\":1,\"origin\":\"custom\",\"conditions\":[{\"key\":\"URL\",\"opValue\":\"contain\",\"values\":\"/test\"},{\"key\":\"Header\",\"opValue\":\"eq\",\"values\":\"ffff\",\"subKey\":\"abc\"}],\"regularRules\":[\"123444\",\"444444\"]}]"
}
自定义响应规则(custom_response)
参数描述
名称 | 类型 | 是否必选 | 示例值 | 描述 |
responseType | String | 必选 | response_block | 自定义响应的类型。取值 response_block,表示拦截响应。 |
status | Integer | 必选 | 1 | 防护规则状态。该参数仅用于创建防护规则,修改防护规则状态时使用 ModifyDefenseRuleStatus 接口的 RuleStatus 参数。取值: - 0:表示关闭。 - 1(默认):表示开启。 |
config | String | 必选 | {"responseCode":400,"responseHeaders":[{"key":"custom","value":"123"},{"key":"aaa","value":"2223"}],"responseContent":"HelloWorld"} | 自定义配置信息,以 JSON 字符串格式进行描述。具体配置信息,请参见config 详细配置。 |
config 详细配置
名称 | 类型 | 是否必选 | 示例值 | 描述 |
responseCode | Integer | 必选 | 400 | 指定响应码。 |
responseHeaders | Array | 可选 | [{"key":"custom","value":"123"},{"key":"aaaa","value":"2223"}] | 自定义响应头列表,以 JSON 字符串格式进行描述。key 为 header 的字段,value 为 header 的值。 |
responseContent | String | 必选 | helloworld | 自定义响应的内容。 |
示例
{
"InstanceId": "waf_v2_public_****",
"TemplateId": 2841,
"DefenseScene": "custom_response",
"Rules":"[{\"responseType\":\"response_block\",\"config\":\"{\\\"templateName\\\":\\\"aaa\\\",\\\"responseCode\\\":\\\"400\\\",\\\"responseContent\\\":\\\"helloWorld\\\",\\\"responseHeaders\\\":[{\\\"key\\\":\\\"test1\\\",\\\"value\\\":\\\"abc\\\"}]}\",\"status\":1}]"
}
区域封禁规则(region_block)
参数描述
名称 | 类型 | 是否必选 | 示例值 | 描述 |
cnRegionList | String | 可选 | 610000,230000 | 中国境内区域列表,只填写["CN"],表示封禁中国内地区域(除港澳台)。多个区域之间使用英文逗号(,)分隔。关于地域代码的具体含义,请参见中国境内地域代码含义说明。 |
abroadRegionList | String | 可选 | KE,KG | 中国境外区域列表,多个区域之间使用英文逗号(,)分隔。您可以通过调用 DescribeIpAbroadCountryInfos 接口查看支持封禁的海外国家和区域。 |
status | Integer | 必选 | 1 | 防护规则状态。该参数仅用于创建防护规则,修改防护规则状态时使用 ModifyDefenseRuleStatus 接口的 RuleStatus 参数。取值: - 0:表示关闭。 - 1(默认):表示开启。 |
action | String | 必选 | block | 防护规则动作。取值: - block:表示拦截。 - monitor:表示观察。 |
中国境内地域代码含义说明
{
"110000": "北京市",
"120000": "天津市",
"130000": "河北省",
"140000": "山西省",
"150000": "内蒙古自治区",
"210000": "辽宁省",
"220000": "吉林省",
"230000": "黑龙江省",
"310000": "上海市",
"320000": "江苏省",
"330000": "浙江省",
"340000": "安徽省",
"350000": "福建省",
"360000": "江西省",
"370000": "山东省",
"410000": "河南省",
"420000": "湖北省",
"430000": "湖南省",
"440000": "广东省",
"450000": "广西壮族自治区",
"460000": "海南省",
"500000": "重庆市",
"510000": "四川省",
"520000": "贵州省",
"530000": "云南省",
"540000": "西藏自治区",
"610000": "陕西省",
"620000": "甘肃省",
"630000": "青海省",
"640000": "宁夏回族自治区",
"650000": "新疆维吾尔自治区",
"MO_01": "中国澳门",
"HK_01": "中国香港",
"TW_01": "中国台湾",
"CN": "中华人民共和国内地区域(除港澳台)",
}
示例
{
"InstanceId": "waf_v2_public_****",
"TemplateId": 2341,
"DefenseScene": "region_block",
"Rules": "[{\"cnRegionList\":\"CN,HK_01,TW_01,MO_01\",\"abroadRegionList\":\"AU,NZ\",\"action\":\"block\",\"status\":1}]"
}
CC 防护规则(cc)
参数描述
名称 | 类型 | 是否必选 | 示例值 | 描述 |
mode | Integer | 必选 | 0 | CC 防护模式。取值: - 0(默认):表示普通防护。 - 1:表示紧急防护。 |
status | Integer | 必选 | 1 | 防护规则状态。该参数仅用于创建防护规则,修改防护规则状态时使用 ModifyDefenseRuleStatus 接口的 RuleStatus 参数。取值: - 0:表示关闭。 - 1(默认):表示开启。 |
示例
{
"InstanceId": "waf_v2_public_****",
"TemplateId": 2241,
"DefenseScene": "cc",
"Rules":"[{\"mode\":0,\"status\":1}]"
}
网页防篡改防护规则(tamperproof)
参数描述
名称 | 类型 | 是否必选 | 示例值 | 描述 |
name | String | 必选 | test | 防护规则名称。长度为 1~255 个字符,可以包含中文、英文、数字、下划线(_)、半角句号(.)或者短划线(-)。 |
url | String | 必选 | /abc | 缓存页面的地址。 |
ua | String | 可选 | app | 指定 user-agent 访问该路径。 |
protocol | String | 必选 | https | 缓存页面地址的协议类型。取值:http、https。 |
status | Integer | 必选 | 1 | 防护规则状态。该参数仅用于创建防护规则,修改防护规则状态时使用 ModifyDefenseRuleStatus 接口的 RuleStatus 参数。取值: - 0:表示关闭。 - 1(默认):表示开启。 |
示例
{
"InstanceId": "waf_v2_public_****",
"TemplateId": 1241,
"DefenseScene": "tamperproof",
"Rules": "[{\"name\":\"test1\",\"url\":\"www.test1.com\",\"ua\":\"firefox\",\"protocol\":\"https\",\"status\":1}]"
}
信息泄露防护规则(dlp)
参数描述
名称 | 类型 | 是否必选 | 示例值 | 描述 |
name | String | 必选 | test | 防护规则名称。长度为 1~255 个字符,可以包含中文、英文、数字、下划线(_)、半角句号(.)或者短划线(-)。 |
conditions | Array | 必选 | [{"key":"HttpCode","opValue":"contain","values":"400,401,402,403,404,405,500,501,502,503,504,505"},{"key":"URL","opValue":"contain","values":"test"}] | 匹配条件,以 JSON 字符串格式进行描述,支持设置最多两条匹配条件且条件间的关系为并且。具体配置信息,请参见conditions 详细配置。 |
status | Integer | 必选 | 1 | 防护规则状态。该参数仅用于创建防护规则,修改防护规则状态时使用 ModifyDefenseRuleStatus 接口的 RuleStatus 参数。取值: - 0:表示关闭。 - 1(默认):表示开启。 |
action | String | 必选 | block | 防护规则动作。取值: - block:表示拦截,该动作仅适用于包含响应码匹配条件场景。 - monitor:表示观察。 - filter:表示敏感信息过滤,该动作仅适用于包含敏感信息匹配条件场景。 |
conditions 详细配置
名称 | 类型 | 是否必选 | 示例值 | 描述 |
key | String | 必选 | URL | 匹配字段。取值:URL、HttpCode、SensitiveInfo。 |
opValue | String | 必选 | contain | 逻辑符。固定取值 contain。 |
values | String | 必选 | abc | 匹配内容,多个匹配内容之间使用逗号(,)分隔。 HttpCode 对应取值为:400、401、402、403、404、405(代表405-499)、500、501、502、503、504、505(代表505-599)。 SensitiveInfo 对应取值为: - phone:表示电话号码。 - card:表示信用卡。 - id:表示身份证。 - word:表示默认敏感词。 |
示例
{
"InstanceId": "waf_v2_public_****",
"TemplateId": 5241,
"DefenseScene": "dlp",
"Rules":"[{\"name\":\"test\",\"action\":\"filter\",\"status\":1,\"conditions\":[{\"key\":\"SensitiveInfo\",\"opValue\":\"contain\",\"values\":\"id,card\"},{\"key\":\"URL\",\"opValue\":\"contain\",\"values\":\"/test.html\"}]}]"
}
洪峰限流(spike_throttle)
参数描述
名称 | 类型 | 是否必选 | 示例值 | 描述 |
name | String | 必选 | iptest | 洪峰限流规则名称。长度为 1~255 个字符,可以包含中文、英文、数字、下划线(_)、半角句号(.)或者短划线(-)。 |
status | Integer | 必选 | 1 | 防护规则状态。该参数仅用于创建防护规则,修改防护规则状态时使用 ModifyDefenseRuleStatus 接口的 RuleStatus 参数。取值: - 0:表示关闭。 - 1(默认):表示开启。 |
action | String | 必选 | block | 防护规则动作。取值: - block:表示拦截。 - monitor:表示观察。 |
conditions | Array | 必选 | [{"key":"IP","opValue":"eq","values":"11.XX.XX.1"},{"key":"Header","subKey":"abc","opValue":"contains","values":"test"}] | ACL 的流量特征,以 JSON 字符串格式进行描述,支持填写最多五个匹配条件。具体配置信息,请参见conditions 详细配置。 |
cnRegionList | String | 可选 | 610000,230000 | 中国境内区域列表,只填写["CN"],表示封禁中国内地区域(除港澳台)。多个区域之间使用英文逗号(,)分隔。关于地域代码的具体含义,请参见中国境内地域代码含义说明。 |
abroadRegionList | String | 可选 | KE,KG | 中国境外区域列表,多个区域之间使用英文逗号(,)分隔。您可以通过调用 DescribeIpAbroadCountryInfos 接口查看支持封禁的海外国家和区域。 |
type | String | 必选 | qps | 限流方式。取值: - qps:表示按 QPS 限流。 - ratio(默认):表示按百分比限流。 |
threshold | Integer | 必选 | 500 | 限流阈值。取值范围: - QPS 限流阈值范围为[1-5000000],选择 QPS 限流(如 500QPS)时,满足限流条件且超过 500QPS 的流量将被拦截。 - 百分比限流阈值范围为[1-99],选择百分比限流如(80%)时,满足限流条件的流量只会放行 80%。 |
conditions 详细配置
名称 | 类型 | 是否必选 | 示例值 | 描述 |
key | String | 必选 | IP | 匹配字段。取值:URL、URLPath、IP、Referer、User-Agent、Params、Cookie、Content-Type、Content-Length、X-Forwarded-For、Post-Body、Http-Method、Header。 |
subKey | String | 可选 | abc | 自定义子匹配字段。 说明 并不是每一个洪峰限流规则的匹配字段(key)都有自定义子匹配字段(subKey)。关于不同匹配字段是否支持自定义子匹配字段,请以 WAF 控制台洪峰限流规则中匹配字段和自定义匹配字段的关系为准。 |
opValue | String | 必选 | contain | 逻辑符。取值: - not-contain:表示不包含。 - contain:表示包含。 - 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:表示在列表中。 说明 并不是每一个洪峰规则的匹配字段(key)都能对应配置全部的逻辑符(opValue)。关于不同匹配字段支持使用的逻辑符,请以 WAF 控制台洪峰限流规则中匹配字段和逻辑符的关联关系为准。 |
values | String | 必选 | abc | 匹配内容,根据需要填写相应的内容。 说明 匹配条件参数中的逻辑符(opValue)、匹配内容(values)参数取值范围与所指定的匹配字段(key)相关。 |
中国境内地域代码含义说明
{
"110000": "北京市",
"120000": "天津市",
"130000": "河北省",
"140000": "山西省",
"150000": "内蒙古自治区",
"210000": "辽宁省",
"220000": "吉林省",
"230000": "黑龙江省",
"310000": "上海市",
"320000": "江苏省",
"330000": "浙江省",
"340000": "安徽省",
"350000": "福建省",
"360000": "江西省",
"370000": "山东省",
"410000": "河南省",
"420000": "湖北省",
"430000": "湖南省",
"440000": "广东省",
"450000": "广西壮族自治区",
"460000": "海南省",
"500000": "重庆市",
"510000": "四川省",
"520000": "贵州省",
"530000": "云南省",
"540000": "西藏自治区",
"610000": "陕西省",
"620000": "甘肃省",
"630000": "青海省",
"640000": "宁夏回族自治区",
"650000": "新疆维吾尔自治区",
"MO_01": "中国澳门",
"HK_01": "中国香港",
"TW_01": "中国台湾",
"CN": "中华人民共和国内地区域(除港澳台)",
}
示例
{
"InstanceId": "waf_v2_public_****",
"TemplateId": 2341,
"DefenseScene": "spike_throttle",
"Rules":"[{\"name\":\"test\",\"action\":\"monitor\",\"conditions\":[{\"key\":\"URL\",\"opValue\":\"contain\",\"values\":\"abctest\"}],\"status\":1,\"type\":\"qps\",\"threshold\":1000,\"cnRegionList\":\"110000,140000\",\"abroadRegionList\":\"AD,AL\"}]"}
}
防护对象维度规则(resource)
当防护规则类型 DefenseType 为 resource 时,具体的规则配置内容如下。
账号提取规则(account_identifier)
账号提取规则每个防护对象下只支持配置 1 条提取配置。
参数描述
名称 | 类型 | 是否必选 | 示例值 | 描述 |
accountldentifiers | Array | 必选 | [ { "key": "Header","subKey": "header-test", "decodeType": "jwt", "position": "username", "priority": 1 }, { "key": "Post-Arg", "subKey": "body_test", "decodeType": "plain", "priority": 2 } ] | 账号提取配置列表,最多支持 5 条,每一条配置以 JSON 字符串格式表示。具体配置信息,请参见 accountIdentifiers 详细配置。 |
accountIdentifiers 详细配置
名称 | 类型 | 是否必选 | 示例值 | 描述 |
key | String | 必选 | Query-Arg | 提取的字段位置。取值:Query-Arg、Cookie-Exact、Post-Arg、Header。 |
subKey | String | 必选 | query-test | 自定义子匹配字段。 |
decodeType | String | jwt | query-test | 认证方式。取值: - plain:表示明文。 - basic:表示 Basic 认证。 - jwt:表示 JWT 认证,JWT 认证需要指定解码后的账号字段(position)。 |
priority | Integer | 必选 | 1 | 当前提取配置的匹配优先级,同一个流量最多命中一条提取策略,取值范围为[0,20],数字越小优先级越高,且不能重复。 |
position | String | 可选 | account | 针对 JWT 认证,解码后的账号字段。 |
示例
{
"DefenseScene": "account_identifier",
"Resource": "example.**.com-waf",
"DefenseType": "resource",
"InstaneId": "waf_cn****",
"Rules": "[{\"accountIdentifiers\":[{\"key\":\"Header\",\"subKey\":\"header-test\",\"decodeType\":\"jwt\",\"position\":\"username\",\"priority\":1},{\"key\":\"Post-Arg\",\"subKey\":\"body_test\",\"decodeType\":\"plain\",\"priority\":2}]}]"
}
全局维度规则(global)
当防护规则类型 DefenseType 为 global 时,具体的规则配置内容如下。
自定义正则规则(regular_custom)
参数描述
名称 | 类型 | 是否必选 | 示例值 | 描述 |
name | String | 必选 | ruleTest | 用户自定义正则规则名称。长度为 1~255 个字符,可以包含中文、英文、数字、下划线(_)、半角句号(.)或者短划线(-)。 |
detectType | String | 必选 | sqli | 检测类型。取值: - sqli:SQL 注入 - - xss:XSS 跨站脚本攻击 - cmdi:OS 命令注入 - expression_injection:表达式注入(包括 EL,SpEL,OGNL 表达式) - java_deserialization:Java 反序列化 - dot_net_deserialization:.net 反序列化 - php_deserialization:PHP 反序列化 - code_execution:远程代码执行(JNDI/XPATH) - ssrf:SSRF 服务器端请求伪造 - path_traversal:路径穿越 - arbitrary_file_uploading/webshell:任意文件上传 (webshell) - remote_file_inclusion:远程文件包含 - local_file_inclusion:本地文件包含 - protocol_violation:协议违背 (协议合规) - scanner_behavior:扫描器行为 - logic_flaw:业务逻辑缺陷 - arbitrary_file_reading:任意文件读取 |
riskLevel | String | 必选 | strict | 风险等级,取值: - super_strict:超严格。 - strict:严格。 - medium:中等。 - loose:宽松 |
description | String | 可选 | 规则描述。 | 自定义正则规则描述。 |
condition | Array | 必选 | [{"key":"IP","opValue":"eq","values":"11.XX.XX.1"},{"key":"Header","subKey":"abc","opValue":"contains","values":"test"}] | ACL 的流量特征,以 JSON 字符串格式进行描述,支持填写最多五个匹配条件。具体配置信息,请参见condition 详细配置。 |
condition 详细配置
名称 | 类型 | 是否必选 | 示例值 | 描述 |
key | String | 必选 | Query-Arg | 自定义匹配字段。取值:File-Name、Url、Raw-Url、Request-Url、Http-Method、Directory、Query、Raw-Header、Body、Extension、Union-Args、All-Data、All-Keys、Multipart-Keys、Multipart-Values、Header-Keys、Header-Values、Post-Arg-Keys、Post-Arg-Values、Query-Arg-Keys、Query-Arg-Values、Cookie-Keys、Cookie-Values、Header、Query-Arg、Post-Arg、Multipart。 |
subKey | String | 可选 | query-test | 自定义子匹配字段。 重要 仅当匹配字段为 Header、Query-Arg、Post-Arg、Multipart 时,支持子匹配字段。 |
opValue | String | 必选 | contain | 逻辑符。取值:regex、prefix-match、suffix-match、eq、contain。 |
values | String | 必选 | abc | 匹配内容,多个匹配内容之间使用逗号(,)分隔。 |
示例
{
"name": "ruleTest",
"detectType": "sqli",
"riskLevel": "strict",
"condition": [{"key": "FileName","opValue": "eq","values": "test"}]
}
返回参数
名称 |
类型 |
描述 |
示例值 |
object |
返回对象结构。 |
||
RequestId |
string |
当前请求的 ID。 |
26E46541-7AAB-5565-801D-F14DBDC5**** |
RuleIds |
string |
创建的防护规则 ID,多个防护规则 ID 之间使用英文逗号(,)分隔。 |
22215,23354,462165 |
示例
正常返回示例
JSON
格式
{
"RequestId": "26E46541-7AAB-5565-801D-F14DBDC5****",
"RuleIds": "22215,23354,462165"
}
错误码
访问错误中心查看更多错误码。
变更历史
更多信息,参考变更详情。