CreateDefenseRule - 创建Web核心防护规则

更新时间:
复制 MD 格式

创建Web核心防护规则。

调试

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

调试

授权信息

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

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

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

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

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

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

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

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

操作

访问级别

资源类型

条件关键字

关联操作

yundun-waf:CreateDefenseRule

create

*全部资源

*

  • acs:ResourceGroupId

请求参数

名称

类型

必填

描述

示例值

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:表示洪峰限流。

  • bot_manager: 表示 BOT 管理。

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

  • account_identifier:表示账号提取。

  • custom_response:表示新版自定义响应。

  • waf_codec:表示解码。

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

  • regular_custom:表示自定义正则。

  • address_book:表示地址簿。

  • custom_response:表示新版自定义响应。

说明

全局配置的自定义响应,用户可在防护对象或者规则下引用,当用户在不同维度引用配置了自定义响应规则时,真实生效逻辑为:规则级别 > 防护对象级别 > 默认页面。

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:表示观察。




actionExternalJSON可选{"responseRuleId":123444}防护规则动作的扩展配置,仅新版自定义响应支持配置。当 actionblock 时,可以指定自定义拦截页面。
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:表示观察。




actionExternalJSON可选{"responseRuleId":123444}防护规则动作的扩展配置,仅新版自定义响应支持配置。当 actionblock 时,可以指定自定义拦截页面。
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 控制台中展示的自定义规则动作为准。
















actionExternalJSON可选{"responseRuleId":123444}防护规则动作的扩展配置,仅新版自定义响应支持配置。当 actionblock 时,可以指定自定义拦截页面,actioncaptcha/ captcha_strict 时,可以指定自定义滑块页面。
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:表示生效对象为单规则。




grayStatusInteger可选1是否开启规则的灰度生效。取值:
- 0(默认):表示关闭灰度。
- 1:表示开启灰度。




grayConfigJSON可选{"grayTarget":"header","grayRate":80,"graySubKey":"test"}规则生效的灰度配置,以 JSON 字符串格式进行描述,仅 grayStatus 配置为 1 时,配置该信息。具体配置信息,请参见防护规则参数配置说明中 grayConfig 详细配置。
timeConfigJSON可选{"timeScope":"period","timeZone":8,"timePeriods":[{"start":1758771729787,"end":1758816000000}]}规则生效的定时配置,以 JSON 字符串格式进行描述。具体配置信息,请参见防护规则参数配置说明中 timeConfig 详细配置。

示例

{
    "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\",\"timeConfig\":{\"timeScope\":\"cycle\",\"timeZone\":8,\"weekTimePeriods\":[{\"day\":\"1\",\"dayPeriods\":[{\"start\":0,\"end\":51644084}]},{\"day\":\"1,2,5\",\"dayPeriods\":[{\"start\":0,\"end\":42928908}]}]},\"grayStatus\":1,\"grayConfig\":{\"grayRate\":80,\"graySubKey\":\"test\",\"grayTarget\":\"header\"}}]"
}

白名单规则(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_rule:表示自定义规则特定规则。
- customrule:表示自定义规则。
- blacklist:表示 IP 黑名单。
- blacklist_rule:表示 IP 黑名单特定规则。
- antiscan:表示扫描防护。
- regular:表示基础防护规则。
- regular_rule:表示基础防护特定正则规则。
- regular_type:表示基础防护特定正则规则类型。
- regular_field:表示基础防护特定字段。
- major_protection:表示重保场景防护。
- cc:表示 CC 防护。
- region_block:表示区域封禁。
- antibot_scene:表示 BOT 场景防护。
- antibot_scene_rule:表示 BOT 场景防护特定规则 ID。
- antibot_scene_label:表示 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:表示其他。

























regularFieldsArray可选[{"key":"URL"},{"key":"Header","subKey":"abc"}]基础防护不检测字段列表,以 JSON 字符串格式进行描述,支持填写最多五个匹配条件。具体配置信息,请参见regularFields 详细配置。仅白名单作用模块配置为基础防护特定字段(tags 参数取值为regular_field)时,配置该参数。
customRulesArray可选[ "111111", "222222" ]不检测自定义规则 ID 列表,使用["XX1", "XX2",……]格式。仅白名单作用模块配置为自定义规则特定规则(tags 参数取值为customrule_rule)时,配置该参数。
blacklistRulesArray可选[ "111111", "222222" ]不检测 IP 黑名单规则 ID 列表,使用["XX1", "XX2",……]格式。仅白名单作用模块配置为 IP 黑名单特定规则(tags 参数取值为blacklist_rule)时,配置该参数。
botRulesArray可选[ "111111", "222222" ]不检测 BOT 场景防护规则 ID 列表,使用["XX1", "XX2",……]格式。仅白名单作用模块配置为 BOT 场景防护特定规则 ID(tags 参数取值为antibot_scene_rule)时,配置该参数。
botLablesArray可选[ "abc", "cdcc" ]不检测 BOT 场景防护规则类型列表,使用["XX1", "XX2",……]格式。仅白名单作用模块配置为 BOT 场景防护特定规则类型(tags 参数取值为antibot_scene_label)时,配置该参数。您可以通过调用 DescribeBotRuleLabels 接口查看 BOT 的规则类型信息。

regularFields 详细配置

名称类型是否必选示例值描述
keyString必选URL不检测字段。取值:
- URL-All:表示 URI 相关的全部字段。
- URL:表示 URI 指定字段。
- URLPath:表示 URI Path。
- Query-All:表示 Query 相关的全部字段。
- Query-Arg:表示 Query 指定参数。
- Cookie-All:表示 Cookie 相关的全部字段。
- Cookie-Exact:表示指定 Cookie Name。
- Header-All:表示 Header 相关的全部字段。
- Header:表示 Header 指定字段。
- Body-All:表示 Body 所有参数。




























subKeyString可选abc指定字段。当不检测字段(key)取值为 URLPathQuery-ArgCookie-ExactHeader,需要配置该参数。

示例

{
    "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:表示观察。




actionExternalJSON可选{"responseRuleId":123444}防护规则动作的扩展配置,仅新版自定义响应可用。当 actionblock 时,可以指定自定义拦截页面, actioncaptcha/ captcha_strict 时,可以指定自定义滑块页面。

中国境内地域代码含义说明

{
    "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(默认):表示开启。




actionString可选js防护规则动作。取值:
- js(默认):表示 JS 校验。
- monitor:表示观察。




示例

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

网页防篡改防护规则(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:表示观察。




actionExternalJSON可选{"responseRuleId":123444}防护规则动作的扩展配置,仅新版自定义响应支持配置。当 actionblock 时,可以指定自定义拦截页面。
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%。




中国境内地域代码含义说明

{
    "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-one\",\"values\":\"abctest,abctest2\"}],\"status\":1,\"type\":\"qps\",\"threshold\":1000,\"cnRegionList\":\"110000,140000\",\"abroadRegionList\":\"AD,AL\"}]"}
}

BOT 管理规则(bot_manager

BOT 管理规则包含两类子场景:BOT 场景化规则基于内置的 BOT 规则标签进行防护;BOT 高级自定义规则则通过自定义流量特征匹配条件(conditions)实现更精细的 BOT 防护策略。以下分别说明两类子场景的参数配置。

BOT 场景化规则参数描述

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




actionString必选block防护规则动作。取值:
- block:表示拦截。
- monitor:表示观察。
- js:表示 JS 校验。
- sigchl:表示人机校验签名挑战,仅 human_machine_challenge规则标签支持。
- captcha:表示滑块。
- captcha_strict:表示严格滑块。
- upstream_tag:表示回源打标。
- bypass:表示放行,仅normal_intelligence_search_spider规则标签支持。
说明 不同的 BOT 规则标签(botRuleDetail.ruleKey)支持的动作不同,每个规则标签支持的动作请以WAF 控制台中展示的 BOT 场景化规则动作为准。

























actionExternalJSON可选{"responseRuleId":123444}或者
{"upstreamHeader":{"header":"test","systemKey":["type","id"]}}

防护规则动作的扩展配置,以 JSON 字符串格式表示。字段含义如下:
- upstreamHeader:表示回源打标配置,仅当 actionupstream_tag时配置,具体配置信息,请参见回源打标 upstreamHeader 配置
- responseRuleId:表示自定义响应规则 ID。当 actionblock 时,其值为指定的自定义拦截页面规则 ID;当 actioncaptcha/captcha_strict时,其值为自定义滑块页面规则 ID。




botBehaviorString可选malicious规则分类。取值:
- suspicious(默认):表示疑似 BOT。
- malicious:表示恶意 BOT。
- normal:表示友好 BOT。







botRuleDetailJSON必选{"ruleKey":"human_machine_challenge","hmChallengeConfig":{"sig":1,"replay":0,"driver":0,"probe":0}}BOT 规则标签配置。具体配置信息,请参见botRuleDetail 详细配置
ratelimitJSON可选{"target":"remote_addr","interval":300,"threshold":300,"ttl":7200,"distinctStat":[{"key":"IP","opValue":"gt","values":"100"}]}限速详细配置,以 JSON 字符串格式进行描述。仅当 DescribeBotRuleLabels 接口返回中,与 botRuleDetail 的 ruleKey 对应的 LabelKey 关联的 DefaultConfig 配置内容包含 ratelimit 字段时,才允许配置该字段。配置时仅允许修改 intervalthresholdttl 三个阈值类参数,targetsubKeystatus 以及 distinctStat(含其内部的 keysubKeyopValuevalues)须按该规则标签 DefaultConfig 返回的内容原样传入,不可修改。具体配置信息,请参见防护规则参数配置说明中 ratelimit 详细配置。
grayStatusInteger可选1是否开启规则的灰度生效。取值:
- 0(默认):表示关闭灰度。
- 1:表示开启灰度。




grayConfigJSON可选{"grayTarget":"header","grayRate":80,"graySubKey":"test"}规则生效的灰度配置,以 JSON 字符串格式进行描述,仅 grayStatus 配置为 1 时,配置该信息。具体配置信息,请参见防护规则参数配置说明中 grayConfig 详细配置。
timeConfigJSON可选{"timeScope":"period","timeZone":8,"timePeriods":[{"start":1758771729787,"end":1758816000000}]}规则生效的定时配置,以 JSON 字符串格式进行描述。具体配置信息,请参见防护规则参数配置说明中 timeConfig 详细配置。

botRuleDetail 详细配置

名称类型是否必选示例值描述
ruleKeyString必选human_machine_challengeBOT 管理的规则标签。具体取值列表请参见 DescribeBotRuleLabels 接口返回中规则标签 LabelKey 的值。
hmChallengeConfigJSON可选{"sig":1,"replay":0,"driver":0,"probe":0}人机校验配置。仅当 ruleKeyhuman_machine_challengeactionsigchl 时,支持配置该字段;当 ruleKeyhuman_machine_challengeactionjs 时,无需配置该字段。具体配置信息,请参见hmChallengeConfig 详细配置
riskControlConfigJSON可选{"accountInfo":[{"type":"phone","location":"Cookie-Exact","subKey":"abc"}],"riskLabels":["risk.trumpet.high.v1"]}风险识别配置,以 JSON 字符串格式表示。仅当 ruleKeyrisk_control时,支持配置该字段。
重要 风险识别为单独售卖的增值服务,需要额外开通后才可使用。
具体配置信息,请参见riskControlConfig 详细配置
packageSignsArray可选[{"packageName":"com.example.app","packageSign":"abc123"}]二次打包校验列表。仅当 ruleKeyapp_malicious_signature_packagename时,支持配置该字段。其中:
- packageName(String,必选):合法包名称。
- packageSign(String,必选):合法包签名。




signAbnormalJSON可选{"antireplay":0,"customSignStatus":1,"customSign":{"key":"header","value":"abc123def456"}}签名异常配置。仅当 ruleKeyapp_malicious_signature_verification时,支持配置该字段。具体配置信息,请参见signAbnormal 详细配置
crawlerStatusMapJSON可选{"google":1,"baidu":1,"bing":1,"sogou":1,"yahoo":1,"yandex":1,"bytedance":1,"360":1}各搜索引擎爬虫的开关状态。仅当 ruleKeynormal_intelligence_search_spider时,支持配置该字段。具体支持的搜索引擎列表以 DescribeBotRuleLabels 接口返回中 ruleKey 为normal_intelligence_search_spider时的 DefaultConfig 配置内容为准。

hmChallengeConfig 详细配置

名称类型是否必选示例值描述
sigInteger必选1签名验证异常状态。取值:
- 0:表示关闭。
- 1(默认):表示开启。




replayInteger必选0签名时间戳异常状态。取值:
- 0:表示关闭。
- 1:表示开启。




driverInteger必选0WebDriver 攻击状态。取值:
- 0:表示关闭。
- 1:表示开启。




probeInteger必选0探针一致性校验状态。取值:
- 0:表示关闭。
- 1:表示开启。




riskControlConfig 详细配置

重要 风险识别为单独售卖的增值服务,需要额外开通后才可使用。
名称类型是否必选示例值描述
accountInfoArray必选[{"type":"phone","location":"Cookie-Exact","subKey":"abc"}]账号参数信息列表。每一项包含如下字段:
- type(String,必选):账号类型。取值:
  - phone:表示手机号。
  - phoneMd5:表示手机号 MD5 值。
- location(String,必选):账号参数位置。取值:
  - Query-Arg:表示 Query 参数。
  - Cookie-Exact:表示 Cookie 名称。
  - Post-Arg:表示 Body 参数。
- subKey(String,必选):账号所在的参数名称。






















riskLabelsArray必选["risk.trumpet.high.v1","risk.fraud.high.v1"]风险标签情报列表。取值:
- risk.trumpet.high.v1:表示疑似小号(高风险)。
- risk.fraud.high.v1:表示诈骗风险(高风险)。
- risk.registration.high.v1:表示垃圾注册(高风险)。
- risk.registration.midhigh.v1:表示垃圾注册(中高风险)。
- risk.registration.mid.v1:表示垃圾注册(中风险)。
- risk.cheating.high.v1:表示营销作弊(高风险)。
- risk.scalper.high.v1:表示黄牛账号(高风险)。
- risk.scalper.midhigh.v1:表示黄牛账号(中高风险)。
- risk.scalper.mid.v1:表示黄牛账号(中风险)。

























signAbnormal 详细配置

名称类型是否必选示例值描述
antireplayInteger可选0App 签名是否过期。取值:
- 0(默认):表示关闭。
- 1:表示开启。




customSignStatusInteger可选0是否开启自定义加签。取值:
- 0(默认):表示关闭。
- 1:表示开启。




customSignJSON可选{"key":"header","value":"3333"}自定义加签配置,以 JSON 字符串格式表示。其中:
- key(String,必选):加签字段类型。取值:header(表示请求头)、arg(表示请求参数)、cookie(表示 Cookie)。
- value(String,必选):对应字段的值。




示例

{
    "InstanceId": "waf_v2_public_****",
    "TemplateId": 1111,
    "DefenseScene": "bot_manager",
    "Rules": "[{\"status\":1,\"botRuleDetail\":{\"ruleKey\":\"human_machine_challenge\"},\"action\":\"js\"},{\"status\":1,\"botBehavior\":\"malicious\",\"botRuleDetail\":{\"ruleKey\":\"malicious_crawler_python\"},\"action\":\"captcha\"},{\"status\":1,\"botBehavior\":\"normal\",\"botRuleDetail\":{\"ruleKey\":\"normal_intelligence_search_spider\",\"crawlerStatusMap\":{\"google\":1,\"baidu\":1,\"bing\":1,\"sogou\":1,\"yahoo\":1,\"yandex\":1,\"bytedance\":1,\"360\":1}},\"action\":\"bypass\"},{\"status\":1,\"botBehavior\":\"suspicious\",\"botRuleDetail\":{\"ruleKey\":\"suspicious_development_tool_python\"},\"action\":\"monitor\"},{\"status\":1,\"botBehavior\":\"suspicious\",\"botRuleDetail\":{\"ruleKey\":\"web_suspicious_request_sequence_umid_ip\"},\"ratelimit\":{\"target\":\"websdk.umid\",\"interval\":300,\"threshold\":300,\"ttl\":7200,\"distinctStat\":[{\"key\":\"IP\",\"opValue\":\"gt\",\"values\":\"100\"}]},\"action\":\"captcha\"}]"
}

BOT 高级自定义规则参数描述

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




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



















actionExternalJSON可选{"responseRuleId":123444}或者
{"upstreamHeader":{"header":"test","systemKey":["type","id"]}}

防护规则动作的扩展配置,以 JSON 字符串格式表示。字段含义如下:
- upstreamHeader:表示回源打标配置,仅当 actionupstream_tag 时,具体配置信息,请参见 回源打标 upstreamHeader 配置
- responseRuleId:表示自定义响应规则 ID:
actionblock 时,responseRuleId 的值为指定自定义拦截页面规则 ID。
actioncaptcha / captcha_strict 时,responseRuleId 的值为自定义滑块页面规则 ID。










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:表示生效对象为单规则。




botBehaviorString可选malicious规则分类。取值:
- suspicious(默认):表示疑似 BOT。
- malicious:表示恶意 BOT。




grayStatusInteger可选1是否开启规则的灰度生效。取值:
- 0(默认):表示关闭灰度。
- 1:表示开启灰度。




grayConfigJSON可选{"grayTarget":"header","grayRate":80,"graySubKey":"test"}规则生效的灰度配置,以 JSON 字符串格式进行描述,仅 grayStatus 配置为 1 时,配置该信息。具体配置信息,请参见防护规则参数配置说明中 grayConfig 详细配置。
timeConfigJSON可选{"timeScope":"period","timeZone":8,"timePeriods":[{"start":1758771729787,"end":1758816000000}]}规则生效的定时配置,以 JSON 字符串格式进行描述。具体配置信息,请参见防护规则参数配置说明中 timeConfig 详细配置。

回源打标 upstreamHeader 配置

名称类型是否必选示例值描述
headerString必选abc回源打标的 header 名。
systemKeyArray必选["id","type"]回源打标填充的系统字段。该列表为有序的,输出的 Header 内容按照列表中字段顺序。取值:
- id: 表示规则 ID。
- type: 表示规则类型。
- websdk.umid: 表示网页端 UMID。
- ssl_client_ja3_fingerprinting_md5: 表示 JA3 指纹。
- ssl_client_ja4_fingerprinting_md5: 表示 JA4 指纹。
- http2_client_fingerprint_md5: 表示 HTTP/2 指纹。
- appsdk.eeid_umid: 表示 APP 端探针-设备 UMID 值。
- appsdk.eeid_running_frame_magisk: 表示 APP 端探针-是否使用 Magisk 框架。
- appsdk.eeid_running_frame_frida: 表示 APP 端探针-是否存在 Frida 注入。
- appsdk.eeid_running_frame_fishhook: 表示 APP 端探针-是否存在 FishHook 注入。
- appsdk.eeid_running_frame_edxposed: 表示 APP 端探针-是否使用 EdXposed 框架。
- appsdk.is_xposed: 表示 APP 端探针-是否使用 Xposed 框架。
- appsdk.eeid_running_frame_va: 表示 APP 端探针-是否使用 VirtualApp 框架。
- appsdk.eeid_running_frame_cydia: 表示 APP 端探针-是否安装 Cydia。
- appsdk.eeid_is_batch: 表示 APP 端探针-是否为群控设备。
- appsdk.eeid_is_root: 表示 APP 端探针-设备是否 Root。
- appsdk.eeid_is_fake: 表示 APP 端探针-是否虚假设备。
- appsdk.eeid_is_virtual: 表示 APP 端探针-是否应用多开/虚拟环境。
- appsdk.pkguncrypted: 表示 APP 端探针-是否被砸壳。
- appsdk.eeid_is_hook: 表示 APP 端探针-是否存在 Hook 行为。
- appsdk.eeid_is_debugged: 表示 APP 端探针-是否被调试。
- appsdk.eeid_is_simulator: 表示 APP 端探针-是否模拟器。
- appsdk.eeid_is_proxy: 表示 APP 端探针-是否使用代理。
- appsdk.eeid_is_highrisk: 表示 APP 端探针-是否为高风险设备。
- appsdk.adbstate: 表示 APP 端探针-是否开启 ADB。
- appsdk.eeid_abnormal_time: 表示 APP 端探针-本机时间异常。
- appsdk.eeid_short_uptime: 表示 APP 端探针-开机时间过短。
- appsdk.screenon: 表示 APP 端探针-屏幕是否开启。
- appsdk.collectend: 表示 APP 端探针-是否采集结束。
- appsdk.pkgreleasemode: 表示 APP 端探针-是否调试模式。
- appsdk.elapsedtime: 表示 APP 端探针-开机到现在的时间。
- appsdk.isfront: 表示 APP 端探针-是否前台运行。
- appsdk.passwordunlock: 表示 APP 端探针-是否锁屏。
- appsdk.fingerprintauth: 表示 APP 端探针-是否开启指纹认证。
- appsdk.brand: 表示 APP 端探针-手机品牌。
- appsdk.model: 表示 APP 端探针-手机型号。
- appsdk.batterychange: 表示 APP 端探针-手机电量较上次采集变化。
- appsdk.batterystatus: 表示 APP 端探针-充电状态。
- appsdk.batterylevel: 表示 APP 端探针-电池电量。
- appsdk.brightness: 表示 APP 端探针-屏幕亮度。
- appsdk.packagesign: 表示 APP 端探针-包签名哈希。
- appsdk.screenres: 表示 APP 端探针-屏幕尺寸。
- appsdk.packagename: 表示 APP 端探针-应用包名。
- appsdk.platform: 表示 APP 端探针-平台。
- appsdk.hookframe: 表示 APP 端探针-Hook 框架。
-appsdk.version: 表示 APP 端探针-APPSDK 版本号。
- appsdk.appname: 表示 APP 端探针-应用名称。
- appsdk.appversion: 表示 APP 端探针-应用版本号。
- appsdk.hardware: 表示 APP 端探针-硬件名称。
- appsdk.timestamp: 表示 APP 端探针-采集时间戳。
- appsdk.devicename: 表示 APP 端探针-设备名称。
- appsdk.product: 表示 APP 端探针-产品代号。
- appsdk.eeid_running_frame_script: 表示 APP 端探针-是否安装自动化辅助工具。
说明 不同的 BOT 功能支持的回源打标字段不同,请以 WAF 控制台 BOT 自定义规则中回源打标列表展示的字段为准。
































































































































































customValueString可选test自定义字符。

防护对象维度规则(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}]}]"
}

防护对象自定义响应规则(custom_response

防护对象自定义响应规则每个防护对象下只支持配置 1 条内容。 响应页面的生效逻辑:规则级别 > 防护对象级别 > 默认页面。

参数描述

名称类型是否必选示例值描述
blockRuleIdLong可选1123自定义拦截页面的规则 ID。表示在防护对象触发拦截时,返回该自定义拦截页面。
captchaRuleIdLong可选1123自定义滑块页面的规则 ID。表示在防护对象触发滑块时,返回该自定义滑块页面。

示例

{
    "DefenseScene": "custom_response",
    "Resource": "example.**.com-waf",
    "DefenseType": "resource",
    "InstaneId": "waf_cn****",
    "Rules": "[{\"blockRuleId\":900000,\"captchaRuleId\":900001}]"
}

防护对象解码规则(waf_codec

防护对象解码规则每个防护对象下只支持配置 1 条内容。

参数描述

名称类型是否必选示例值描述
codecListArray必选["comment","space-zip","json","xml","form","multipart","graphql","js-unicode","url","hex","html","php","java","utf7","oct"]要开启解码的类型。取值:
- url:表示 URL 解码(默认开启不可取消)。
- js-unicode:表示 Unicode 解码(默认开启不可取消)。
- oct: 表示 OCT 解码(默认开启不可取消)。
- hex:表示 Hex 解码(默认开启不可取消)。
- comment:表示注释解码(默认开启不可取消)。
- space-zip:表示空格解码(默认开启不可取消)。
- multipart:表示 Multipart 解析。
- json:表示 JSON 解析。
- xml:表示 XML 解析。
- php:表示 PHP 序列化解码。
- html:表示 HTML 实体解码。
- utf7:表示 UTF-7 解码。
- base64:表示 Base64 解码。
- form:表示 Form 解析。
- gzip:表示 Gzip 解压缩。
- java:表示 Java 反序列化解码。
- graphql:表示 GraphQL 解析

















































示例

{
    "DefenseScene": "waf_codec",
    "Resource": "example.**.com-waf",
    "DefenseType": "resource",
    "InstaneId": "waf_cn****",
    "Rules": "[{\"codecList\":[\"comment\",\"space-zip\",\"json\",\"xml\",\"form\",\"multipart\",\"graphql\",\"js-unicode\",\"url\",\"hex\",\"html\",\"php\",\"java\",\"utf7\",\"gzip\",\"oct\",\"base64\"]}]"
}

全局维度规则(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_exec:表示远程代码执行(JNDI/XPATH)。
- ssrf:表示 SSRF 服务器端请求伪造。
- path_traversal:表示路径穿越。
- arbitrary_file_uploading:表示任意文件上传。
- webshell:表示 webshell。
- rfilei:表示远程文件包含(RFI)。
- lfilei:表示本地文件包含(LFI)。
- protocol_violation:表示协议违背。
- scanner_behavior:表示扫描器行为。
- logic_flaw:表示业务逻辑缺陷。
- arbitrary_file_reading:表示任意文件读取。
- arbitrary_file_download:表示任意文件下载。
- xxe:表示外部实体注入。
- csrf:表示跨站请求伪造。
- crlf:表示 CRLF。
- other:表示其他。



































































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"}]
}

地址簿(address_book

参数描述

名称类型是否必选示例值描述
nameString必选bookTest地址簿名称。长度为 1~255 个字符,可以包含中文、英文、数字、下划线(_)、半角句号(.)或者短划线(-)。
valueTypeString必选ip地址簿类型。取值:
- ip:表示 IP 类型地址簿。

descriptionString可选addressbookTest地址簿描述。

示例

{
  "name": "bookTest",
  "valueType": "ip",
  "description": "addressbookTest"
}

自定义响应规则(custom_response

参数描述

名称类型是否必选示例值描述
nameString必选test自定义响应规则名称。长度为 1~255 个字符,可以包含中文、英文、数字、下划线(_)、半角句号(.)或者短划线(-)。
actionString必选block防护规则动作。取值:
- block:表示拦截。
- captcha:表示滑块。




responseCodeInteger可选400指定响应码。
- 自定义拦截页面规则下该参数必选。
- 自定义滑块页面规则不支持指定响应码,默认 200。




responseHeadersArray可选[{"key":"custom","value":"123"},{"key":"aaaa","value":"2223"}]自定义响应头列表,以 JSON 字符串格式进行描述。key 为 header 的字段,value 为 header 的值。
designTypeString可选custom响应配置类型。只有自定义滑块页面规则,即 actioncaptcha 时,需要指定该字段值。取值:
- custom:表示自定义配置。
- preDefine:表示预定义配置。




responseContentString可选helloworld自定义响应的内容。自定义滑块/拦截页面时,该参数必选。
preDefineContentArray可选[{"language":"cn","title":"test","description":"desc","captchaColor":"#FFFF","showTraceId":false},{"language":"en","title":"titel","description":"desc","captchaColor":"#FFFF","showTraceId":false}]预定义配置内容。designTypepreDefine 时必传,否则不传。具体配置信息,请参见 预定义的详细配置

预定义的详细配置

名称类型是否必选示例值描述
languageString必选en语言配置。取值:
- en:表示英文。
- cn:表示中文。




iconString必选https://img.alicdn.com/imgextra/i1/O1CN01L12MaQ1ZwfYKk7Yrc_!!6000000003259-2-tps-900-594.png图标,用户配置的为公网可访问的路径。
titleString必选test_title自定义滑块页面标题。
descriptionString必选For better experience, please slide to complete the verification process before accessing the web page.自定义滑块页面描述。
captchaColorString必选#ff6a00滑块颜色。
showTraceIdboolean必选true是否展示日志 ID。 取值:
- true:表示滑块页面透出日志 ID。
- false:表示滑块页面不透出日志 ID。




自定义拦截页面配置示例

{
  "name": "test",
  "action": "block",
  "responseContent": "helloworld",
  "responseCode": 401,
  "responseHeaders": [{"key":"t1","value":"v1"}],
}

预定义滑块页面配置示例

{
"name": "test",
"designType": "preDefine",
"action": "captcha",
"responseHeaders": [
    {
    "key": "Content-Type",
    "value": "text/html"
    }
],
"preDefineContent": [
    {
    "language": "en",
    "icon": "https://img.alicdn.com/imgextra/i1/O1CN01L12MaQ1ZwfYKk7Yrc_!!6000000003259-2-tps-900-594.png",
    "title": "Access Verification-custom",
    "description": "For better experience, please slide to complete the verification process before accessing the web page.",
    "captchaColor": "#ff6a00",
    "showTraceId": true
    }
]
}

返回参数

名称

类型

描述

示例值

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"
}

错误码

HTTP status code

错误码

错误信息

描述

400 Defense.Control.DefenseWhitelistBypassRuleNotExist The whitelist protection rule does not exist. 白名单中加白的防护规则不存在.规则ID:%s.
400 Defense.Control.DefenseWhitelistConfigInvalid The whitelist rule is misconfigured. 白名单规则的配置错误: %s.
400 Defense.Control.DefenseBookTypeInvalid The address book type is illegal. 地址簿类型不合法.
400 Defense.Control.DefenseThreatIntelligenceConfigInvalid Threat Intelligence Rule configuration error. 威胁情报规则配置错误. %s
400 Defense.Control.DefenseIpCountOversize The number of IPs exceeds the limit. IP数量超过限制。
400 Defense.Control.InvalidDefenseRuleConfig Invalid protection rule configuration. %s. 无效的防护规则配置。

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

变更历史

更多信息,参考变更详情