CreateDefenseRule - 创建Web核心防护规则

创建Web核心防护规则。

调试

您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。

调试

授权信息

下表是API对应的授权信息,可以在RAM权限策略语句的Action元素中使用,用来给RAM用户或RAM角色授予调用此API的权限。具体说明如下:

  • 操作:是指具体的权限点。

  • 访问级别:是指每个操作的访问级别,取值为写入(Write)、读取(Read)或列出(List)。

  • 资源类型:是指操作中支持授权的资源类型。具体说明如下:

    • 对于必选的资源类型,用前面加 * 表示。

    • 对于不支持资源级授权的操作,用全部资源表示。

  • 条件关键字:是指云产品自身定义的条件关键字。

  • 关联操作:是指成功执行操作所需要的其他权限。操作者必须同时具备关联操作的权限,操作才能成功。

操作

访问级别

资源类型

条件关键字

关联操作

yundun-waf:CreateDefenseRule

create

*全部资源

*

请求参数

名称

类型

必填

描述

示例值

InstanceId

string

WAF 实例 ID。

说明

您可以通过调用 DescribeInstance 接口查看您当前 WAF 实例 ID。

waf_v2_public_cn-****

TemplateId

integer

要创建的防护规则的防护模板 ID。

说明

仅当 DefenseTypetemplate 时,需要传入该参数。

1122

DefenseScene

string

要创建的 WAF 防护场景。

当防护规则类型 DefenseTypetemplate 时,取值:

  • waf_group:表示基础防护。

  • waf_base:表示新版 Web 核心防护。

  • antiscan:表示扫描防护。

  • ip_blacklist:表示 IP 黑名单。

  • custom_acl:表示自定义规则。

  • whitelist:表示白名单。

  • region_block:表示区域封禁。

  • custom_response:表示自定义响应。

  • cc:表示 CC 防护。

  • tamperproof:表示网页防篡改。

  • dlp:表示信息泄露防护。

  • spike_throttle:表示洪峰限流。

当防护规则类型 DefenseTyperesource 时,取值:

  • account_identifier:表示账号提取。

当防护规则类型 DefenseTypeglobal 时,取值:

  • regular_custom:表示自定义正则。

waf_group

Rules

string

规则配置内容,以一系列参数构造的 JSON 格式转化成字符串。

说明

根据所指定的防护规则类型DefenseScene)不同,具体涉及的参数有所不同。详细信息,请参见防护规则参数描述

waf_group

ResourceManagerResourceGroupId

string

阿里云资源组 ID。

rg-acfm***q

DefenseType

string

防护规则类型。取值:

  • template(默认):表示模版防护规则。

  • resource:表示防护对象维度的规则。

  • global:表示全局维度的规则。

template

RegionId

string

WAF 实例所属地域。取值:

  • cn-hangzhou:表示中国内地。

  • ap-southeast-1:表示非中国内地。

cn-hangzhou

Resource

string

创建规则对应的防护对象。

说明

仅当 DefenseTyperesource 时,需要传入该参数。

sec****-waf

防护规则参数描述

模版防护规则(template

当防护规则类型 DefenseTypetemplate 时,具体的规则配置内容如下。

基础防护规则(waf_group

参数描述

名称类型是否必选示例值描述
statusInteger必选1防护规则状态。该参数仅用于创建防护规则,修改防护规则状态时使用 ModifyDefenseRuleStatus 接口的 RuleStatus 参数。取值:
- 0:表示关闭。
- 1(默认):表示开启。




actionString必选block防护规则动作。取值:
- block:表示拦截。
- monitor:表示观察。




policyIdLong可选1012防护规则组 ID。默认为中等规则组 1012。
protectionTypeString可选sema防护规则类型。取值:
- regular(默认):表示正则防护。
- sema:表示语义防护。




configString可选{"nonInjectionSql":1}自定义配置信息,以 JSON 字符串格式表示。具体配置信息,请参见 config 详细配置。

config 详细配置

  • protectionType 配置为 sema 时(基础防护规则配置为语义防护)

名称类型是否必选示例值描述
nonInjectionSqlInteger必选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

参数描述

名称类型是否必选示例值描述
autoUpdateBoolean必选true自动更新,取值:
- true:表示开启自动更新。
- false:表示关闭自动更新。




configArray必选[{"ruleType":"system","ruleDetail":[{"ruleId":13000412,"ruleStatus":1,"ruleAction":"block"}]}]需要修改的规则配置,具体配置信息,请参见 config 详细配置。
重要 您可以通过 DescribeBaseSystemRules 接口查询该模板的系统防护规则配置; 通过 DescribeDefenseRules 接口查询该模板的自定义正则规则配置。

config 详细配置

名称类型是否必选示例值描述
ruleTypeString必选system规则类型,取值:
- system:基础防护中的系统规则。
- custom: 基础防护中的自定义正则规则




ruleBatchOperationConfigString可选default批量修改规则操作,该字段非空时,RuleDetail 字段必须为空。取值:
- default:恢复默认。
- all_on:所有规则状态开启。
- all_off:所有规则状态关闭。
- all_block:所有规则动作拦截。
- all_monitor:所有规则动作观察。













ruleDetailArray可选[{"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

参数描述

名称类型是否必选示例值描述
protectionTypeString必选highfreq扫描防护规则子类型。取值:
- highfreq:表示高频扫描封禁。
- dirscan:表示目录遍历封禁。
- scantools:表示扫描工具封禁。







statusInteger必选1防护规则状态。该参数仅用于创建防护规则,修改防护规则状态时使用 ModifyDefenseRuleStatus 接口的 RuleStatus 参数。取值:
- 0:表示关闭。
- 1(默认):表示开启。




actionString必选block防护规则动作。取值:
- block:表示拦截。
- monitor:表示观察。




configString可选{"target":"remote_addr","interval":60,"ttl":180,"count":20}自定义配置信息,以 JSON 字符串格式进行描述。具体配置信息,请参见config 详细配置

config 详细配置

  • protectionType 配置为 highfreq 时(扫描防护规则配置为高频扫描封禁)

名称类型是否必选示例值描述
targetString必选remote_addr统计对象类型。取值:
- remote_addr(默认):表示 IP。
- cookie.acw_tc:表示会话。
- header:表示自定义 Header。选择自定义 Header 时,必须在 subkey 参数中填写需要统计的 Header 内容。
- queryarg:表示自定义参数。选择自定义参数时,必须在 subkey 参数中填写需要统计的自定义参数名称。
- cookie:表示自定义 Cookie。选择自定义 Cookie 时,必须在 subkey 参数中填写需要统计的 Cookie 内容。













subKeyString可选abc统计对象的子特征。当 target 参数值为 cookieheaderqueryarg 时,必须在 subkey 参数中填写对应的信息。
intervalInteger可选60检测时长,单位为秒。默认为 60 秒。
取值范围为:5~1800 秒。

ttlInteger可选1800封禁时长,单位为秒。默认为 1800 秒。
取值范围为:60~86400 秒。

countInteger可选20基础防护规则触发最大次数。默认为 20 次。
取值范围为:3~50000 次。

ruleIdCountInteger可选2触发的最大规则数。默认为 2 条。
取值范围为:1~50 条。

  • protectionType 配置为 dirscan 时(扫描防护规则配置为目录遍历封禁)

名称类型是否必选示例值描述
targetString必选remote_addr统计和封禁对象。取值:
- remote_addr(默认):表示 IP。
- cookie.acw_tc:表示会话。
- header:表示自定义 Header。
- queryarg:表示自定义参数。
- cookie:表示自定义 Cookie。













subKeyString可选1统计和封禁对象的子特征。仅 target 配置为header、queryarg、cookie时,配置该信息。
intervalInteger可选60检测时长,单位为秒。默认为 60 秒。
取值范围为:5~1800 秒。

ttlInteger可选1800封禁时长,单位为秒。默认为 1800 秒。
取值范围为:60~86400 秒。

countInteger可选20基础防护规则触发最大次数。默认为 20 次。
取值范围为:3~50000 次。

weightFloat可选2404 响应码百分比。默认为 0.7。
取值范围为:0.01~1.0,精确到小数点后两位。

uriNumInteger可选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

参数描述

名称类型是否必选示例值描述
nameString必选iptestIP 黑名单规则名称。长度为 1~255 个字符,可以包含中文、英文、数字、下划线(_)、半角句号(.)或者短划线(-)。
statusInteger必选1防护规则状态。该参数仅用于创建防护规则,修改防护规则状态时使用 ModifyDefenseRuleStatus 接口的 RuleStatus 参数。取值:
- 0:表示关闭。
- 1(默认):表示开启。




actionString必选block防护规则动作。取值:
- block:表示拦截。
- monitor:表示观察。




remoteAddrArray必选["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

参数描述

名称类型是否必选示例值描述
nameString必选iptest自定义 ACL 规则名称。长度为 1~255 个字符,可以包含中文、英文、数字、下划线(_)、半角句号(.)或者短划线(-)。
statusInteger必选1防护规则状态。该参数仅用于创建防护规则,修改防护规则状态时使用 ModifyDefenseRuleStatus 接口的 RuleStatus 参数。取值:
- 0:表示关闭。
- 1(默认):表示开启。




actionString必选block防护规则动作。取值:
- block:表示拦截。
- monitor:表示观察。
- js:表示 JS 校验。
- captcha:表示滑块。
- captcha_strict:表示严格滑块。
说明 自定义 ACL 支持的防护规则动作,请以 WAF 控制台中展示的自定义规则动作为准。
















conditionsArray必选[{"key":"IP","opValue":"eq","values":"11.XX.XX.1"},{"key":"Header","subKey":"abc","opValue":"contains","values":"test"}]ACL 的流量特征,以 JSON 字符串格式进行描述,支持填写最多五个匹配条件。具体配置信息,请参见conditions 详细配置
ccStatusInteger必选1是否开启限速。取值:
- 0:表示关闭限速。
- 1:表示开启限速。




ratelimitJSON可选{"target":"remote_addr","interval":5,"threshold":2,"ttl":1800,"status":{"code":404,"count":2}}限速详细配置,以 JSON 字符串格式进行描述,仅 ccStatus 配置为 1 时,配置该信息。具体配置信息,请参见ratelimit 详细配置
effectString可选rule设置限速生效范围,仅 ccStatus 配置为 1 时,配置该信息。取值:
- service:表示生效对象为防护对象。
- rule:表示生效对象为单规则。




conditions 详细配置

名称类型是否必选示例值描述
keyString必选IP匹配字段。取值:URL、URLPath、IP、Referer、User-Agent、Params、Cookie、Content-Type、Content-Length、X-Forwarded-For、Post-Body、Http-Method、Header。
subKeyString可选abc自定义子匹配字段。
说明 并不是每一个自定义规则的匹配字段(key)都有自定义子匹配字段(subKey)。关于不同匹配字段是否支持自定义子匹配字段,请以 WAF 控制台自定义规则中匹配字段和自定义匹配字段的关系为准。

opValueString必选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 控制台自定义规则中匹配字段和逻辑符的关联关系为准。









































































valuesString必选abc匹配内容,根据需要填写相应的内容。
说明 匹配条件参数中的逻辑符(opValue)、匹配内容(values)参数取值范围与所指定的匹配字段(key)相关。

ratelimit 详细配置

名称类型是否必选示例值描述
targetString必选remote_addr统计对象类型。取值:
- remote_addr(默认):表示 IP。
- cookie.acw_tc:表示会话。
- header:表示自定义 Header。选择自定义 Header 时,必须在 subkey 参数中填写需要统计的 Header 内容。
- queryarg:表示自定义参数。选择自定义参数时,必须在 subkey 参数中填写需要统计的自定义参数名称。
- cookie:表示自定义 Cookie。选择自定义 Cookie 时,必须在 subkey 参数中填写需要统计的 Cookie 内容。













subKeyString可选abc统计对象的子特征。当 target 参数值为 cookieheaderqueryarg 时,必须在 subkey 参数中填写对应的信息。
intervalInteger必选60统计时长,单位为秒。即访问次数的统计周期,与阈值(threshold)参数配合。
取值范围为:1~1800 秒。

thresholdInteger必选200在检测时长内,允许单个统计对象访问被防护地址的次数阈值。
ttlInteger必选1800处置动作的生效时长,单位为秒。
取值范围为:60~86400 秒。

statusJSON可选{"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

参数描述

名称类型是否必选示例值描述
nameString必选whitelistTest白名单规则名称。长度为 1~255 个字符,可以包含中文、英文、数字、下划线(_)、半角句号(.)或者短划线(-)。
statusInteger必选1防护规则状态。该参数仅用于创建防护规则,修改防护规则状态时使用 ModifyDefenseRuleStatus 接口的 RuleStatus 参数。取值:
- 0:表示关闭。
- 1(默认):表示开启。




conditionsArray必选[{"key":"IP","opValue":"eq","values":"11.XX.XX.1"},{"key":"Header","subKey":"abc","opValue":"contains","values":"test"}]白名单的流量特征,以 JSON 字符串格式进行描述,支持填写最多五个匹配条件。具体配置信息,请参见conditions 详细配置
tagsArray必选["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:表示洪峰限流防护。








































regularRulesArray可选[ "111111", "222222" ]不检测正则规则 ID 列表,使用["XX1", "XX2",……]格式。仅白名单作用模块配置为基础防护特定正则规则(tags 参数取值为regular_rule)时,配置该参数。
regularTypesArray可选[ "xss", "css" ]不检测正则规则类型列表,使用["XX1", "XX2",……]格式。仅白名单作用模块配置为 Web 应用正则类型(tags 参数取值为regular_type)时,配置该参数。取值:
- sqli:表示 SQL 注入。
- xss:表示跨站脚本。
- code_exec:表示代码执行。
- crlf:表示 CRLF。
- lfilei:表示本地文件包含。
- rfilei:表示远程文件包含。
- webshell:表示 WebShell。
- csrf:表示 CSRF。
- other:表示其他。

























conditions 详细配置

名称类型是否必选示例值描述
keyString必选IP匹配字段。取值:URLURLPathIPRefererUser-AgentParamsCookieContent-TypeContent-LengthX-Forwarded-ForPost-BodyHttp-MethodHeader
subKeyString可选abc自定义子匹配字段。
说明 并不是每一个白名单规则的匹配字段(key)都有自定义子匹配字段(subKey)。关于不同匹配字段是否支持自定义子匹配字段,请以 WAF 控制台白名单规则中匹配字段和自定义匹配字段的关系为准。

opValueString必选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 控制台白名单规则中匹配字段和逻辑符的关联关系为准。









































































valuesString必选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

参数描述

名称类型是否必选示例值描述
responseTypeString必选response_block自定义响应的类型。取值 response_block,表示拦截响应。
statusInteger必选1防护规则状态。该参数仅用于创建防护规则,修改防护规则状态时使用 ModifyDefenseRuleStatus 接口的 RuleStatus 参数。取值:
- 0:表示关闭。
- 1(默认):表示开启。




configString必选{"responseCode":400,"responseHeaders":[{"key":"custom","value":"123"},{"key":"aaa","value":"2223"}],"responseContent":"HelloWorld"}自定义配置信息,以 JSON 字符串格式进行描述。具体配置信息,请参见config 详细配置

config 详细配置

名称类型是否必选示例值描述
responseCodeInteger必选400指定响应码。
responseHeadersArray可选[{"key":"custom","value":"123"},{"key":"aaaa","value":"2223"}]自定义响应头列表,以 JSON 字符串格式进行描述。key 为 header 的字段,value 为 header 的值。
responseContentString必选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

参数描述

名称类型是否必选示例值描述
cnRegionListString可选610000,230000中国境内区域列表,只填写["CN"],表示封禁中国内地区域(除港澳台)。多个区域之间使用英文逗号(,)分隔。关于地域代码的具体含义,请参见中国境内地域代码含义说明
abroadRegionListString可选KE,KG中国境外区域列表,多个区域之间使用英文逗号(,)分隔。您可以通过调用 DescribeIpAbroadCountryInfos 接口查看支持封禁的海外国家和区域。
statusInteger必选1防护规则状态。该参数仅用于创建防护规则,修改防护规则状态时使用 ModifyDefenseRuleStatus 接口的 RuleStatus 参数。取值:
- 0:表示关闭。
- 1(默认):表示开启。




actionString必选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

参数描述

名称类型是否必选示例值描述
modeInteger必选0CC 防护模式。取值:
- 0(默认):表示普通防护。
- 1:表示紧急防护。




statusInteger必选1防护规则状态。该参数仅用于创建防护规则,修改防护规则状态时使用 ModifyDefenseRuleStatus 接口的 RuleStatus 参数。取值:
- 0:表示关闭。
- 1(默认):表示开启。




示例

{
    "InstanceId": "waf_v2_public_****",
    "TemplateId": 2241,
    "DefenseScene": "cc",
    "Rules":"[{\"mode\":0,\"status\":1}]"
}

网页防篡改防护规则(tamperproof

参数描述

名称类型是否必选示例值描述
nameString必选test防护规则名称。长度为 1~255 个字符,可以包含中文、英文、数字、下划线(_)、半角句号(.)或者短划线(-)。
urlString必选/abc缓存页面的地址。
uaString可选app指定 user-agent 访问该路径。
protocolString必选https缓存页面地址的协议类型。取值:httphttps
statusInteger必选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

参数描述

名称类型是否必选示例值描述
nameString必选test防护规则名称。长度为 1~255 个字符,可以包含中文、英文、数字、下划线(_)、半角句号(.)或者短划线(-)。
conditionsArray必选[{"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 详细配置
statusInteger必选1防护规则状态。该参数仅用于创建防护规则,修改防护规则状态时使用 ModifyDefenseRuleStatus 接口的 RuleStatus 参数。取值:
- 0:表示关闭。
- 1(默认):表示开启。




actionString必选block防护规则动作。取值:
- block:表示拦截,该动作仅适用于包含响应码匹配条件场景。
- monitor:表示观察。
- filter:表示敏感信息过滤,该动作仅适用于包含敏感信息匹配条件场景。







conditions 详细配置

名称类型是否必选示例值描述
keyString必选URL匹配字段。取值:URLHttpCodeSensitiveInfo
opValueString必选contain逻辑符。固定取值 contain
valuesString必选abc匹配内容,多个匹配内容之间使用逗号(,)分隔。
HttpCode 对应取值为:400401402403404405(代表405-499)、500501502503504505(代表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

参数描述

名称类型是否必选示例值描述
nameString必选iptest洪峰限流规则名称。长度为 1~255 个字符,可以包含中文、英文、数字、下划线(_)、半角句号(.)或者短划线(-)。
statusInteger必选1防护规则状态。该参数仅用于创建防护规则,修改防护规则状态时使用 ModifyDefenseRuleStatus 接口的 RuleStatus 参数。取值:
- 0:表示关闭。
- 1(默认):表示开启。




actionString必选block防护规则动作。取值:
- block:表示拦截。
- monitor:表示观察。




conditionsArray必选[{"key":"IP","opValue":"eq","values":"11.XX.XX.1"},{"key":"Header","subKey":"abc","opValue":"contains","values":"test"}]ACL 的流量特征,以 JSON 字符串格式进行描述,支持填写最多五个匹配条件。具体配置信息,请参见conditions 详细配置
cnRegionListString可选610000,230000中国境内区域列表,只填写["CN"],表示封禁中国内地区域(除港澳台)。多个区域之间使用英文逗号(,)分隔。关于地域代码的具体含义,请参见中国境内地域代码含义说明
abroadRegionListString可选KE,KG中国境外区域列表,多个区域之间使用英文逗号(,)分隔。您可以通过调用 DescribeIpAbroadCountryInfos 接口查看支持封禁的海外国家和区域。
typeString必选qps限流方式。取值:
- qps:表示按 QPS 限流。
- ratio(默认):表示按百分比限流。




thresholdInteger必选500限流阈值。取值范围:
- QPS 限流阈值范围为[1-5000000],选择 QPS 限流(如 500QPS)时,满足限流条件且超过 500QPS 的流量将被拦截。
- 百分比限流阈值范围为[1-99],选择百分比限流如(80%)时,满足限流条件的流量只会放行 80%。




conditions 详细配置

名称类型是否必选示例值描述
keyString必选IP匹配字段。取值:URL、URLPath、IP、Referer、User-Agent、Params、Cookie、Content-Type、Content-Length、X-Forwarded-For、Post-Body、Http-Method、Header。
subKeyString可选abc自定义子匹配字段。
说明 并不是每一个洪峰限流规则的匹配字段(key)都有自定义子匹配字段(subKey)。关于不同匹配字段是否支持自定义子匹配字段,请以 WAF 控制台洪峰限流规则中匹配字段和自定义匹配字段的关系为准。

opValueString必选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 控制台洪峰限流规则中匹配字段和逻辑符的关联关系为准。









































































valuesString必选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

当防护规则类型 DefenseTyperesource 时,具体的规则配置内容如下。

账号提取规则(account_identifier

账号提取规则每个防护对象下只支持配置 1 条提取配置。

参数描述

名称类型是否必选示例值描述
accountldentifiersArray必选[ { "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 详细配置

名称类型是否必选示例值描述
keyString必选Query-Arg提取的字段位置。取值:Query-ArgCookie-ExactPost-ArgHeader
subKeyString必选query-test自定义子匹配字段。
decodeTypeStringjwtquery-test认证方式。取值:
- plain:表示明文。
- basic:表示 Basic 认证。
- jwt:表示 JWT 认证,JWT 认证需要指定解码后的账号字段(position)。







priorityInteger必选1当前提取配置的匹配优先级,同一个流量最多命中一条提取策略,取值范围为[0,20],数字越小优先级越高,且不能重复。
positionString可选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

当防护规则类型 DefenseTypeglobal 时,具体的规则配置内容如下。

自定义正则规则(regular_custom

参数描述

名称类型是否必选示例值描述
nameString必选ruleTest用户自定义正则规则名称。长度为 1~255 个字符,可以包含中文、英文、数字、下划线(_)、半角句号(.)或者短划线(-)。
detectTypeString必选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:任意文件读取

















































riskLevelString必选strict风险等级,取值:
- super_strict:超严格。
- strict:严格。
- medium:中等。
- loose:宽松










descriptionString可选规则描述。自定义正则规则描述。
conditionArray必选[{"key":"IP","opValue":"eq","values":"11.XX.XX.1"},{"key":"Header","subKey":"abc","opValue":"contains","values":"test"}]ACL 的流量特征,以 JSON 字符串格式进行描述,支持填写最多五个匹配条件。具体配置信息,请参见condition 详细配置

condition 详细配置

名称类型是否必选示例值描述
keyString必选Query-Arg自定义匹配字段。取值:File-NameUrlRaw-UrlRequest-UrlHttp-MethodDirectoryQueryRaw-HeaderBodyExtensionUnion-ArgsAll-DataAll-KeysMultipart-KeysMultipart-ValuesHeader-KeysHeader-ValuesPost-Arg-KeysPost-Arg-ValuesQuery-Arg-KeysQuery-Arg-ValuesCookie-KeysCookie-ValuesHeaderQuery-ArgPost-ArgMultipart
subKeyString可选query-test自定义子匹配字段。
重要 仅当匹配字段为 HeaderQuery-ArgPost-ArgMultipart 时,支持子匹配字段。
opValueString必选contain逻辑符。取值:regexprefix-matchsuffix-matcheqcontain
valuesString必选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"
}

错误码

访问错误中心查看更多错误码。

变更历史

更多信息,参考变更详情