全部產品
Search
文件中心

Web Application Firewall:CreateDefenseRule - 建立Web核心防護規則

更新時間:Dec 09, 2025

建立Web核心防護規則

調試

您可以在OpenAPI Explorer中直接運行該介面,免去您計算簽名的困擾。運行成功後,OpenAPI Explorer可以自動產生SDK程式碼範例。

調試

授權資訊

當前API暫無授權資訊透出。

請求參數

名稱

類型

必填

描述

樣本值

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:表示生效對象為單規則。

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 詳細配置

conditions 詳細配置

名稱類型是否必選樣本值描述
keyString必選IP匹配欄位。取值:URL、URLPath、IP、Referer、User-Agent、Params、Cookie、Content-Type、Content-Length、X-Forwarded-For、Post-Body、Http-Method、Header、Extension、Filename、Server-Port、Host、Cookie-Exact、Query-Arg、Post-Arg。
重要 不同的 WAF 版本支援的匹配欄位不同,請以 WAF 控制台自訂規則中匹配欄位為準。
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 參數兩者選其一,不可同時配置。


grayConfig 詳細配置

名稱類型是否必選樣本值描述
grayTargetString必選80灰階物件類型。取值:
- remote_addr(預設):表示 IP。
- cookie.acw_tc:表示會話。
- header:表示自訂 Header。選擇自訂 Header 時,必須在 graySubKey 參數中填寫需要統計的 Header 內容。
- queryarg:表示自訂參數。選擇自訂參數時,必須在 graySubKey 參數中填寫需要統計的自訂參數名稱。
- cookie:表示自訂 Cookie。選擇自訂 Cookie 時,必須在 graySubKey 參數中填寫需要統計的 Cookie 內容。




graySubKeyString可選abc統計對象的子特徵。當 grayTarget 參數值為 cookieheaderqueryarg 時,必須在 graySubKey 參數中填寫對應的資訊。
grayRateInteger必選20灰階生效百分比。取值範圍為:1~100。

timeConfig 詳細配置

名稱類型是否必選樣本值描述
timeScopeString必選perid規則生效時間範圍。取值:
- permanent(預設):表示永久生效。
- period:表示按照時間段生效。
- cycle:表示周期性生效。


timeZoneInteger必選8規則生效的時區,預設為 8,取值範圍:-12~12,其中 0 表示世界時間,8 表示 UTC+8 東八區,-8表示 UTC-8 西八區。
timePeriodsArray可選[{"start":1758771729787,"end":1758816000000}]規則生效的時間段。當 timeScope 參數值為 period 時,必須設定該參數,支援設定多個時間段。
- start:Long 類型,必選 ,規則生效的起始時間,Unix 時間戳記,單位為 ms。
- end:Long 類型,必選 ,規則生效的結束時間,Unix 時間戳記,單位為 ms。

weekTimePeriodsArray可選[{"day":"1","dayPeriods":[{"start":0,"end":51644084}]},{"day":"1,2,5","dayPeriods":[{"start":0,"end":42928908}]}]規則周期性生效的時間段。當 timeScope 參數值為 cycle 時,必須設定該參數,支援設定多個時間段。
- day:String 類型,必選,規則生效的周期,取值範圍:1~7,多個日期使用英文逗號(,)分隔。例如取值為 1 時,表示每周一生效。
- dayPeriods:Array 類型,必選,規則每天生效的時間段,包括起始時間 start、結束時間 end,支援設定多個時間段。
     • start: Long 型,必選,規則每天生效的起始時間,相對於當天 0 點的毫秒級時間戳記,取值範圍為[0-86400000),單位為 ms。
     • end: Long 型,必選,規則每天生效的結束時間,相對於當天 0 點的毫秒級時間戳記,取值範圍為[0-86400000),單位為 ms。



樣本

{
    "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 的規則類型資訊。

conditions 詳細配置

名稱類型是否必選樣本值描述
keyString必選IP匹配欄位。取值:URL、URLPath、IP、Referer、User-Agent、Params、Cookie、Content-Type、Content-Length、X-Forwarded-For、Post-Body、Http-Method、Header、Server-Port、Host、Query-Arg。
重要 不同的 WAF 版本支援的匹配欄位不同,請以 WAF 控制台白名單規則中匹配欄位為準。
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)相關。

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

中國境內地區代碼含義說明

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

返回參數

名稱

類型

描述

樣本值

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.

訪問錯誤中心查看更多錯誤碼。

變更歷史

更多資訊,參考變更詳情