在指定的WAF防護功能模塊創(chuàng)建配置規(guī)則,如Web入侵防護、數(shù)據(jù)安全、高級防護、Bot、訪問控制、限流。
接口說明
本接口用于在指定的 WAF 防護功能模塊(包括 Web 入侵防護、數(shù)據(jù)安全、高級防護、Bot 管理、訪問控制或限流等模塊)中創(chuàng)建規(guī)則配置。您可以通過設置 DefenseType 參數(shù)值指定防護功能模塊配置。具體參數(shù)值的含義,請參見請求參數(shù) DefenseType 的描述。 請注意,為了確保系統(tǒng)的文檔性,對單用戶 QPS 限制為 10 次/秒。超過限制,API 調(diào)用將會被限流,這可能影響您的業(yè)務,請合理調(diào)用。
調(diào)試
您可以在OpenAPI Explorer中直接運行該接口,免去您計算簽名的困擾。運行成功后,OpenAPI Explorer可以自動生成SDK代碼示例。
授權(quán)信息
下表是API對應的授權(quán)信息,可以在RAM權(quán)限策略語句的Action
元素中使用,用來給RAM用戶或RAM角色授予調(diào)用此API的權(quán)限。具體說明如下:
- 操作:是指具體的權(quán)限點。
- 訪問級別:是指每個操作的訪問級別,取值為寫入(Write)、讀取(Read)或列出(List)。
- 資源類型:是指操作中支持授權(quán)的資源類型。具體說明如下:
- 對于必選的資源類型,用背景高亮的方式表示。
- 對于不支持資源級授權(quán)的操作,用
全部資源
表示。
- 條件關鍵字:是指云產(chǎn)品自身定義的條件關鍵字。
- 關聯(lián)操作:是指成功執(zhí)行操作所需要的其他權(quán)限。操作者必須同時具備關聯(lián)操作的權(quán)限,操作才能成功。
操作 | 訪問級別 | 資源類型 | 條件關鍵字 | 關聯(lián)操作 |
---|---|---|---|---|
yundun-waf:CreateProtectionModuleRule | Write |
|
| 無 |
請求參數(shù)
名稱 | 類型 | 必填 | 描述 | 示例值 |
---|---|---|---|---|
Domain | string | 是 | 要添加防護規(guī)則配置的域名。 說明
您可以調(diào)用 DescribeDomainNames 查詢所有已添加到 WAF 進行防護的域名。
| www.example.com |
DefenseType | string | 是 | 要配置的防護功能模塊。取值:
| ac_custom |
Rule | string | 是 | 規(guī)則配置內(nèi)容,以一系列參數(shù)構(gòu)造的 JSON 格式轉(zhuǎn)化成字符串。 說明
根據(jù)所指定的防護功能模塊配置(DefenseType)不同,具體涉及的參數(shù)有所不同。詳細信息,請參見 Rule 參數(shù)具體說明。
| {"action":"monitor","name":"test","scene":"custom_acl","conditions":[{"opCode":1,"key":"URL","values":"/example"}]} |
InstanceId | string | 是 | WAF 實例 ID。 說明
您可以調(diào)用 DescribeInstanceInfo 查詢當前 WAF 實例的 ID。
| waf-cn-0xldbqt**** |
ResourceGroupId | string | 否 | WAF 實例在資源管理服務中所屬的資源組 ID。默認為空,即屬于默認資源組。 關于資源組的更多信息,請參見創(chuàng)建資源組。 | rg-atstuj3rtop**** |
RegionId | string | 否 | WAF 實例所屬地域。取值:
| cn-hangzhou |
Rule 參數(shù)具體說明
-
規(guī)則防護引擎解碼設置(waf-codec)對應的 JSON 字符串中包含以下參數(shù):
-
codecList:Array 類型 | 必選 | 啟用的解碼配置項。您可在 Web 應用防火墻控制臺中查看該參數(shù)支持填寫的參數(shù)值。
-
示例
{ "codecList":["url","base64"] }
-
-
網(wǎng)站防篡改規(guī)則配置(tamperproof)對應的 JSON 字符串中包含以下參數(shù):
-
uri:String 類型 | 必選 | 所需防護的具體 URL。
-
name:String 類型 | 必選 | 規(guī)則名稱。
-
示例
{ "name":"example", "uri":"http://www.aliyundoc.com/example" }
-
-
防敏感信息泄露規(guī)則配置(dlp)對應的 JSON 字符串中包含以下參數(shù):
-
name:String 類型 | 必選 | 規(guī)則名稱。
-
conditions:Array 類型 | 必選 | 以 JSON 字符串格式描述匹配條件,支持設置最多兩條匹配條件且條件間的關系為并且。其中包含以下具體參數(shù):
-
key:匹配項。取值:
- 0:表示防護的 URL。
- 10:表示敏感信息。
- 11:表示響應碼。
說明 您無法在 conditions 參數(shù)中同時為響應碼(11)和敏感信息(10)設置匹配條件。 -
operation:匹配邏輯。取值固定為 1,表示包含。
-
value:以 JSON 字符串描述匹配條件值,支持填寫多個條件值。其中包含以下具體參數(shù):
- v:僅適用于匹配項(key)為 URL(0)或響應碼(11)的場景。
- URL:當
"key":0
時,參數(shù)值為 URL 地址。 - 響應碼:當
"key":11
,參數(shù)取值范圍包括 400、401、402、403、404、405-499、500、501、502、503、504、505-599。
- URL:當
- k:僅適用于匹配項(key)為敏感信息(10)的場景。取值范圍:
- 100:表示身份證。
- 101:表示信用卡。
- 102:表示電話號碼。
- 103:表示默認敏感詞。
- v:僅適用于匹配項(key)為 URL(0)或響應碼(11)的場景。
-
-
action:匹配動作。取值:
- 3:表示告警。
- 10:表示敏感信息過濾,該動作僅適用于包含敏感信息(
"key":10
)的匹配條件場景。 - 11:表示返回系統(tǒng)內(nèi)置攔截頁面,該動作僅適用于包含響應碼(
"key":11
)的匹配條件場景。
-
示例
{ "name":"example", "conditions":[{"key":11,"operation":1,"value":[{"v":401}]},{"key":"0","operation":1,"value":[{"v":"www.aliyundoc.com"}]}], "action":3 }
-
-
賬戶安全規(guī)則配置(ng_account)對應的 JSON 字符串中包含以下參數(shù):
-
url_path:String 類型 | 必選 | 檢測接口,以 URL 路徑表示,必須以正斜線(/)開頭。
-
method:String 類型 | 必選 | 檢測的請求方式,包括 POST、GET、PUT、DELETE。支持設定多個請求方式,以英文逗號(,)分隔。
-
account_left:String 類型 | 必選 | 賬號參數(shù)名。
-
password_left:String 類型 | 可選 | 密碼參數(shù)名。
-
action:String 類型 | 必選 | 防護動作。取值:
- monitor:表示預警。
- block:表示攔截。
-
示例
{ "url_path":"/example", "method":"POST,GET,PUT,DELETE", "account_left":"aaa", "password_left:"123", "action":"monitor" }
-
-
數(shù)據(jù)風控防護請求配置(antifraud)對應的 JSON 字符串中包含以下參數(shù):
-
uri:String 類型 | 必選 | 具體的防護請求 URL。
-
示例
{ "uri": "http://1.example.com/example" }
-
-
數(shù)據(jù)風控 JS 插入頁面配置(antifraud_js)對應的 JSON 字符串中包含以下參數(shù):
-
uri:String 類型 | 必選 | 需要插入數(shù)據(jù)風控 JS 頁面的 URL,系統(tǒng)將為所指定的 URL 路徑下的所有頁面插入數(shù)據(jù)風控 JS,必須以正斜線(/)開頭。
-
示例
{ "uri": "/example/example" }
-
-
Bot 管理的智能算法規(guī)則配置(bot_algorithm)對應的 JSON 字符串中包含以下參數(shù):
- name:String 類型 | 必選 | 規(guī)則名稱。
- algorithmName:String 類型 | 必選 | 算法名稱。取值:
- RR:表示專項資源爬蟲識別算法。
- PR:表示定向路徑爬蟲識別算法。
- DPR:表示參數(shù)輪詢爬蟲識別算法。
- SR:表示動態(tài) IP 爬蟲識別算法。
- IND:表示代理設備爬蟲識別算法。
- Periodicity:表示周期性爬蟲識別算法。
- timeInterval:Integer 類型 | 必選 | 檢測周期。取值:30、60、120、300、600,單位:秒。
- action:String 類型 | 必選 | 處置動作。取值:
- monitor:表示觀察。
- captcha:表示滑塊。
- js:表示 JavaScript 校驗。
- block:表示阻斷。選擇阻斷作為處置動作時,必須傳入阻斷時長(blocktime)參數(shù)。
- blocktime:Integer 類型 | 可選 | 阻斷時長。單位:分鐘。取值范圍:1~600。
- config:String 類型 | 必選 | 算法配置信息,以 JSON 字符串格式表示。算法配置信息中的具體子參數(shù)與所選擇的算法名稱(algorithmName)相關。
- 專項資源爬蟲識別算法(RR)對應的配置信息應包含以下子參數(shù):
- resourceType:Integer 類型 | 可選 | 請求的資源類型。取值:
- 1:表示動態(tài)資源類型。
- 2:表示靜態(tài)資源類型。
- -1:表示自定義資源類型。選擇自定義資源組時,需要再傳入 extensions 參數(shù),以字符串格式指定具體的資源后綴名,多個后綴名間以英文逗號(,)分隔,例如
css,jpg,xls
。
- minRequestCountPerIp:Integer 類型 | 必選 | 檢測周期中檢測 IP 的范圍,大于等于一定訪問請求數(shù)量的 IP 才會被檢測。通過該參數(shù)指定訪問請求數(shù)量的最小值。取值范圍:5~10000。
- minRatio:Float 類型 | 必選 | 風險判定條件,即 IP 訪問請求中訪問指定資源類型的占比閾值(對應專項資源爬蟲識別算法)或 IP 訪問請求中訪問指定路徑的占比閾值(對應定向路徑爬蟲識別算法),超過閾值后判定為風險。取值范圍:0.01~1。
- resourceType:Integer 類型 | 可選 | 請求的資源類型。取值:
- 定向路徑爬蟲識別算法(PR)對應的配置信息應包含以下子參數(shù):
- keyPathConfiguration:Array 類型 | 可選 | 請求的路徑信息,支持指定最多 10 條路徑,只在使用定向路徑爬蟲識別算法時需傳入該子參數(shù)。以 JSON 字符串格式表示,具體包含以下參數(shù):
- method:String 類型 | 必選 | 請求方法。取值:POST、GET、PUT、DELETE、HEAD、OPTIONS。
- url:String 類型 | 必選 | 請求路徑關鍵字,必須以正斜線(/)開頭。
- matchType:String 類型 | 必選 | 匹配方式,與請求路徑關鍵字(url)參數(shù)結(jié)合指定請求路徑。取值:all(精準匹配)、prefix(前綴匹配)、regex(正則匹配)。
- minRequestCountPerIp:Integer 類型 | 必選 | 檢測周期中檢測 IP 的范圍,大于等于一定訪問請求數(shù)量的 IP 才會被檢測。通過該參數(shù)指定訪問請求數(shù)量的最小值。取值范圍:5~10000。
- minRatio:Float 類型 | 必選 | 風險判定條件,即 IP 訪問請求中訪問指定資源類型的占比閾值(對應專項資源爬蟲識別算法)或 IP 訪問請求中訪問指定路徑的占比閾值(對應定向路徑爬蟲識別算法),超過閾值后判定為風險。取值范圍:0.01~1。
- keyPathConfiguration:Array 類型 | 可選 | 請求的路徑信息,支持指定最多 10 條路徑,只在使用定向路徑爬蟲識別算法時需傳入該子參數(shù)。以 JSON 字符串格式表示,具體包含以下參數(shù):
- 參數(shù)輪詢爬蟲識別算法(DPR)對應的配置信息應包含以下子參數(shù):
- method:String 類型 | 必選 | 請求方法。取值:POST、GET、PUT、DELETE、HEAD、OPTIONS。
- urlPattern:String 類型 | 必選 | 關鍵參數(shù)路徑,必須以正斜線(/)開頭。用{}表示關鍵參數(shù),配置多個{}時將拼接這些參數(shù)作為關鍵參數(shù)。例如,
/company/{}/{}/{}/user.php?uid={}
。 - minRequestCountPerIp:Integer 類型 | 必選 | 檢測周期中檢測 IP 的范圍,大于等于一定訪問請求數(shù)量的 IP 才會被檢測。通過該參數(shù)指定訪問請求數(shù)量的最小值。取值范圍:5~10000。
- minRatio:Float 類型 | 必選 | 風險判定條件,即 IP 訪問請求中不同關鍵參數(shù)值的計數(shù)占比閾值,超過閾值后判定為風險。取值范圍:0.01~1。
- 動態(tài) IP 爬蟲識別算法(SR)對應的配置信息應包含以下子參數(shù):
- maxRequestCountPerSrSession:Integer 類型 | 必選 | 通過設定每個會話中存在的最小請求次數(shù)定義異常會話,即單個會話中的請求次數(shù)小于該值即判定為異常會話。取值范圍:1~8。
- minSrSessionCountPerIp:Integer 類型 | 必選 | 風險判定條件,即 IP 訪問請求中存在的異常會話數(shù)量閾值,單個 IP 訪問請求中的異常會話次數(shù)超過該值后判定為風險。取值范圍:5~300。
- 代理設備爬蟲識別算法(IND)對應的配置信息應包含以下子參數(shù):
- minIpCount:Integer 類型 | 必選 | 惡意設備判定條件,即設備使用 WIFI 關聯(lián)的 IP 變換個數(shù)閾值,超過該閾值后判定為風險。取值范圍:5~500。
- keyPathConfiguration:Array 類型 | 可選 | 檢測路徑信息,支持指定最多 10 條路徑。以 JSON 字符串格式表示,具體包含以下參數(shù):
- method:String 類型 | 必選 | 請求方法。取值:POST、GET、PUT、DELETE、HEAD、OPTIONS。
- url:String 類型 | 必選 | 檢測路徑關鍵字,必須以正斜線(/)開頭。
- matchType:String 類型 | 必選 | 匹配方式,與檢測路徑關鍵字(url)參數(shù)結(jié)合指定請求路徑。取值:all(精準匹配)、prefix(前綴匹配)、regex(正則匹配)。
- 周期性爬蟲識別算法(Periodicity)對應的配置信息應包含以下子參數(shù):
- minRequestCountPerIp:Integer 類型 | 必選 | 檢測周期中檢測 IP 的范圍,大于等于一定訪問請求數(shù)量的 IP 才會被檢測。通過該參數(shù)指定訪問請求數(shù)量的最小值。取值范圍:5~10000。
- level:Integer 類型 | 必選 | 風險判定等級,即訪問 IP 的周期性特征的明顯程度。取值:
- 0:表示明顯。
- 1:表示中等。
- 2:表示較弱。
- 專項資源爬蟲識別算法(RR)對應的配置信息應包含以下子參數(shù):
- 示例
{ "name":"代理設備爬蟲識別", "algorithmName":"IND", "timeInterval":"60", "action":"monitor", "config":{ "minIpCount":5, "keyPathConfiguration":[{"url":"/index","method":"GET","matchType":"prefix"}] } }
-
App 防護的版本防護規(guī)則配置(bot_wxbb_pkg)對應的 JSON 字符串中包含以下參數(shù):
-
name:String 類型 | 必選 | 規(guī)則名稱。
-
action:String 類型 | 必選 | 處置動作。取值:
- test:表示觀察。
- close:表示阻斷。
-
nameList:Array 類型 | 必選 | 合法版本信息,最多指定五條規(guī)則。以 JSON 字符串方式表示,具體包含以下參數(shù):
- name:String 類型 | 必選 | 合法包名稱。
- signList:Array 類型 | 必選 | 對應的包簽名,最多填寫 15 個,以英文逗號(,)分隔。
-
示例
{ "name":"test", "action":"close", "nameList":[{ "name":"apk-xxxx", "signList":["xxxxxx","xxxxx","xxxx","xx"] }] }
-
-
App 防護的路徑防護規(guī)則配置(bot_wxbb)對應的 JSON 字符串中包含以下參數(shù):
-
name:String 類型 | 必選 | 規(guī)則名稱。
-
uri:String 類型 | 必選 | 防護路徑,必須以正斜線(/)開頭。
-
matchType:String 類型 | 必選 | 匹配方式。取值:all(精準匹配)、prefix(前綴匹配)、regex(正則匹配)。
-
arg:String 類型 | 必選 | 參數(shù)包含,與匹配方式(matchType)參數(shù)結(jié)合指定防護路徑配置。
-
action:String 類型 | 必選 | 處置動作。取值:
- test:表示觀察。
- close:表示阻斷。
-
hasTag:Boolean 類型 | 必選 | 是否需要自定義加簽字段。
- true:表示是。選擇需要自定義加簽字段時,需傳入 wxbbVmpFieldType 和 wxbbVmpFieldValue 參數(shù)指定加簽字段的類型和對應值。
- false:表示否。
-
wxbbVmpFieldType:Integer 類型 | 可選 | 自定義加簽字段類型。當 hasTag 參數(shù)值為 true 時,必須傳入?yún)?shù)。取值:
- 0:表示 header。
- 1:表示參數(shù)。
- 2:表示 cookie。
-
wxbbVmpFieldValue:String 類型 | 可選 | 自定義加簽字段值。當 hasTag 參數(shù)值為 true 時,必須傳入?yún)?shù)。
-
blockInvalidSign:Integer 類型 | 必選 | 是否對非法簽名執(zhí)行處置動作,固定值 1。路徑防護規(guī)則的默認防護策略。
-
blockProxy:Integer 類型 | 可選 | 是否對代理執(zhí)行處置動作,固定值 1。如果無需對代理行為執(zhí)行處置動作時無需傳入該參數(shù)。
-
blockSimulator:Integer 類型 | 可選 | 是否對模擬器執(zhí)行處置動作,固定值 1。如果無需對模擬器行為執(zhí)行處置動作時無需傳入該參數(shù)。
-
示例
{ "name":"test", "uri":"/index", "matchType":"all", "arg":"test", "action":"close", "hasTag":true, "wxbbVmpFieldType":2, "wxbbVmpFieldValue":"test", "blockInvalidSign":1, "blockProxy":1 }
-
-
自定義防護策略規(guī)則配置(ac_custom),通過其對應的 JSON 字符串中的 scene 參數(shù)來設置 ACL 訪問控制規(guī)則和 CC 攻擊防護規(guī)則。
-
設置 ACL 訪問控制規(guī)則(scene 參數(shù)值為custom_acl),其對應的 JSON 字符串中包含以下參數(shù):
-
name:String 類型 | 必選 | 規(guī)則名稱。
-
scene:String 類型 | 必選 | 防護類型。設置 ACL 訪問控制規(guī)則時。取值固定為custom_acl。
-
action:String 類型 | 必選 | 處置動作。取值:
- monitor:表示觀察。
- captcha:表示滑塊。
- captcha_strict:表示嚴格滑塊。
- js:表示 JS 驗證。
- block:表示阻斷。
-
conditions:Array 類型 | 必選 | 匹配條件,支持填寫最多五個匹配條件。以 JSON 字符串格式進行描述,具體包含以下參數(shù):
-
key:匹配字段。取值范圍:URL、IP、Referer、User-Agent、Params、Cookie、Content-Type、Content-Length、X-Forwarded-For、Post-Body、Http-Method、Header、URLPath。
-
opCode:邏輯符。取值:
說明 并不是每一個自定義規(guī)則的匹配字段(key)都能對應配置全部的邏輯符(opcode)。關于不同匹配字段支持使用的邏輯符,請以 WAF 控制臺自定義規(guī)則中匹配字段和邏輯符的關聯(lián)關系為準。- **11**:表示等于。 - **10**:表示不等于。 - **41**:表示等于多值之一。 - **50**:表示不等于任一值。 - **1**:表示包含。 - **0**:表示不包含。 - **51**:表示包含多值之一。 - **52**:表示不包含任一值。 - **82**:表示存在。 - **2**:表示不存在。 - **21**:表示長度等于。 - **22**:表示長度大于。 - **20**:表示長度小于。 - **60**:表示正則不匹配。 - **61**:表示正則匹配。 - **72**:表示前綴匹配。 - **81**:表示后綴匹配。 - **80**:表示內(nèi)容為空。
-
values:匹配內(nèi)容。根據(jù)需要填寫相應的內(nèi)容,以 String 類型表示。
說明 匹配條件參數(shù)中的邏輯符(opCode)、匹配內(nèi)容(values)參數(shù)取值范圍與所指定的匹配字段(key)相關。關于支持的匹配條件配置詳細信息,請參見匹配條件字段說明。 -
-
示例
{ "action":"monitor", "name":"test", "scene":"custom_acl", "conditions":[{"opCode":1,"key":"URL","values":"/example"}] }
-
-
設置 CC 攻擊防護規(guī)則(scene 參數(shù)值為custom_cc),對應的 JSON 字符串中包含以下參數(shù):
-
name:String 類型 | 必選 | 規(guī)則名稱。
-
scene:String 類型 | 必選 | 防護類型。設置 CC 攻擊防護規(guī)則時,固定為custom_cc。
-
conditions:Array 類型 | 必選 | 匹配條件,支持填寫最多五個匹配條件。以 JSON 字符串格式進行描述,具體包含以下參數(shù):
-
key:匹配字段。取值范圍:URL、IP、Referer、User-Agent、Params、Cookie、Content-Type、Content-Length、X-Forwarded-For、Post-Body、Http-Method、Header、URLPath。
-
opCode:邏輯符。取值:
說明 并不是每一個自定義規(guī)則的匹配字段(key)都能對應配置全部的邏輯符(opcode)。關于不同匹配字段支持使用的邏輯符,請以 WAF 控制臺自定義規(guī)則中匹配字段和邏輯符的關聯(lián)關系為準。- **11**:表示等于。 - **10**:表示不等于。 - **41**:表示等于多值之一。 - **50**:表示不等于任一值。 - **1**:表示包含。 - **0**:表示不包含。 - **51**:表示包含多值之一。 - **52**:表示不包含任一值。 - **82**:表示存在。 - **2**:表示不存在。 - **21**:表示長度等于。 - **22**:表示長度大于。 - **20**:表示長度小于。 - **60**:表示正則不匹配。 - **61**:表示正則匹配。 - **72**:表示前綴匹配。 - **81**:表示后綴匹配。 - **80**:表示內(nèi)容為空。
-
values:匹配內(nèi)容。根據(jù)需要填寫相應的內(nèi)容,以 String 類型表示。
說明 匹配條件參數(shù)中的邏輯符(opCode)、匹配內(nèi)容(values)參數(shù)取值范圍與所指定的匹配字段(key)相關。 -
-
action:String 類型 | 必選 | 處置動作。取值:
- monitor:表示觀察。
- captcha:表示滑塊。
- captcha_strict:表示嚴格滑塊。
- js:表示 JS 驗證。
- block:表示阻斷。
-
ratelimit:JSON 格式 | 必選 | 頻率設置。以 JSON 字符串格式進行描述,具體包含以下參數(shù):
- target:String 類型 | 必選 | 統(tǒng)計對象類型。取值:
- remote_addr:表示 IP。
- cookie.acw_tc:表示 Session。
- queryarg:表示自定義參數(shù)。選擇自定義參數(shù)時,必須在 subkey 參數(shù)中填寫需要統(tǒng)計的自定義參數(shù)名稱。
- cookie:表示自定義 cookie。選擇自定義 cookie 時,必選在 subkey 參數(shù)中填寫需要統(tǒng)計的 cookie 內(nèi)容。
- header:表示自定義 header。選擇自定義 header 時,必選在 subkey 參數(shù)中填寫需要統(tǒng)計的 header 內(nèi)容。
- subkey:String 類型 | 可選 | 當 target 參數(shù)值為 cookie、header 或 queryarg 時,必選在 subkey 參數(shù)中填寫對應的信息。
- interval: Integer 類型 | 必選 | 統(tǒng)計時長(單位:秒),即訪問次數(shù)的統(tǒng)計周期,與閾值(threshold)參數(shù)配合。
- threshold:Integer 類型 | 必選 | 在檢測時長內(nèi),允許單個統(tǒng)計對象訪問被防護地址的次數(shù)閾值。
- status:JSON 格式 | 可選 | 響應碼頻率設置。以 JSON 字符串格式進行描述,具體包含以下參數(shù):
- code:Integer 類型 | 必選 | 指定響應碼。
- count:Integer 類型 | 可選 | 出現(xiàn)次數(shù)閾值,即表示當指定的響應碼出現(xiàn)次數(shù)超過該閾值時命中防護規(guī)則。取值范圍:1~999999999。count 參數(shù)與 ratio 參數(shù)兩者選其一,不可同時配置。
- ratio:Integer 類型 | 可選 | 出現(xiàn)比例閾值(百分比),即表示當指定的響應碼出現(xiàn)比例超過該閾值時命中防護規(guī)則。取值范圍:1~100。count 參數(shù)與 ratio 參數(shù)兩者選其一,不可同時配置。
- scope:String 類型 | 必選 | 生效范圍。取值:
- rule:表示當前特征匹配范圍內(nèi)。
- domain:表示當前規(guī)則作用的域名范圍內(nèi)。
- ttl:Integer 類型 | 必選 | 處置動作的生效時長(單位:秒)。取值范圍:60~86400。
- target:String 類型 | 必選 | 統(tǒng)計對象類型。取值:
-
示例
{ "name":"CC 防護", "conditions":[{"opCode":1,"key":"URL","values":"/example"}], "action":"block", "scene":"custom_cc", "ratelimit":{ "target": "remote_addr", "interval": 300, "threshold": 2000, "status": { "code": 404, "count": 200 }, "scope": "rule", "ttl": 1800 } }
-
-
-
網(wǎng)站白名單規(guī)則配置(whitelist)對應的 JSON 字符串中包含以下參數(shù):
-
name:String 類型 | 必選 | 規(guī)則名稱。
-
tags:Array 類型 | 必選 | 不檢測模塊。不同類型的白名單規(guī)則支持設置的不檢測模塊(tags)不同,具體說明如下:
說明 tags 的取值只能包含具體白名單類型下羅列的取值。例如,tags 取值不允許同時包含 regular 和 cc,因為 regular 屬于 Web 入侵防護白名單下的取值、cc 屬于訪問控制/限流白名單下的取值。-
如需設置全局白名單,tags 取值:
- waf:表示不檢測所有防護模塊。
-
如需設置 Web 入侵防護白名單,tags 取值(可設置多個):
- regular:表示不檢測規(guī)則防護引擎(包含所有防護規(guī)則)。
- regular_rule:表示不檢測規(guī)則防護引擎中的指定防護規(guī)則(如選擇該取值,必須通過 regularRules 參數(shù)設置不檢測的規(guī)則 ID)。
- regular_type:表示不檢測規(guī)則防護引擎中指定類型的防護規(guī)則(如選擇該取值,必須通過 regularTypes 參數(shù)設置不檢測的規(guī)則類型)。
- deeplearning:表示不檢測深度學習引擎。
-
如需設置訪問控制/限流白名單,tags 取值(可設置多個):
- cc:表示不檢測 CC 安全防護模塊。
- customrule:表示不檢測自定義防護策略。
- blacklist:表示不檢測 IP 黑名單模塊。
- antiscan:表示不檢測掃描防護模塊。
-
如需設置數(shù)據(jù)安全白名單,tags 取值(可設置多個):
- dlp:表示不檢測防敏感信息泄露模塊。
- tamperproof:表示不檢測網(wǎng)站防篡改模塊。
- account:表示不檢測賬戶安全模塊。
-
如需設置 Bot 防護白名單,tags 取值(可設置多個):
- bot_intelligence:表示不檢測爬蟲威脅情報模塊。
- bot_algorithm:表示不檢測典型爬蟲行為識別模塊。
- bot_wxbb:表示不檢測 App 防護模塊。
- antifraud:表示不檢測數(shù)據(jù)風控模塊。
-
-
regularRules:Array 類型 | 可選 | 不檢測的防護規(guī)則 ID 列表。如果 tags 參數(shù)的取值中包含regular_rule,必須填寫該參數(shù)。您可以在 WAF 控制臺的防護規(guī)則組頁面,通過新建規(guī)則組,查詢 WAF 包含的所有 Web 攻擊防護規(guī)則,獲取相關規(guī)則的 ID。具體操作,請參見自定義防護規(guī)則組。
-
regularTypes:Array 類型 | 可選 | 不檢測的防護規(guī)則類型列表。如果 tags 參數(shù)取值中包含regular_type,必須填寫該參數(shù)。取值:
- sqli: 表示 SQL 注入。
- xss: 表示跨站腳本。
- code_exec: 表示代碼執(zhí)行。
- lfilei: 表示本地文件包含。
- rfilei: 表示遠程文件包含。
- webshell: 表示 WebShell。
- vvip: 表示定制的防護規(guī)則。
- other: 表示其他類型。
-
conditions:Array 類型 | 必選 | 匹配條件,支持填寫最多五個匹配條件。以 JSON 字符串格式進行描述,具體包含以下參數(shù):
-
key:匹配字段。取值范圍:URL、IP、Referer、User-Agent、Params、Cookie、Content-Type、Content-Length、X-Forwarded-For、Post-Body、Http-Method、Header、URLPath。
-
opCode:邏輯符。取值:
說明 并不是每一個自定義規(guī)則的匹配字段(key)都能對應配置全部的邏輯符(opcode)。關于不同匹配字段支持使用的邏輯符,請以 WAF 控制臺自定義規(guī)則中匹配字段和邏輯符的關聯(lián)關系為準。- **11**:表示等于。 - **10**:表示不等于。 - **41**:表示等于多值之一。 - **50**:表示不等于任一值。 - **1**:表示包含或?qū)儆凇? - **0**:表示不包含或不屬于。 - **51**:表示包含多值之一。 - **52**:表示不包含任一值。 - **82**:表示存在。 - **2**:表示不存在。 - **21**:表示長度等于。 - **22**:表示長度大于。 - **20**:表示長度小于。 - **60**:表示正則不匹配。 - **61**:表示正則匹配。 - **72**:表示前綴匹配。 - **81**:表示后綴匹配。 - **80**:表示內(nèi)容為空。 - **30**:表示值小于。 - **31**:表示值大于。
-
values:匹配內(nèi)容。根據(jù)需要填寫相應的內(nèi)容,以 String 類型表示。
-
說明 匹配條件參數(shù)中的邏輯符(opCode)、匹配內(nèi)容(values)參數(shù)取值范圍與所指定的匹配字段(key)相關。- 示例
{ "name": "test", "tags": ["cc","customrule"], "conditions":[{"opCode":1,"key":"URL","values":"/example"}], }
-
調(diào)用 API 時,除了本文中該 API 的請求參數(shù),還需加入阿里云 API 公共請求參數(shù)。公共請求參數(shù)的詳細介紹,請參見公共參數(shù)。
調(diào)用 API 的請求格式,請參見本文示例中的請求示例。
返回參數(shù)
示例
正常返回示例
JSON
格式
{
"RequestId": "D7861F61-5B61-46CE-A47C-6B19****5EB0"
}
錯誤碼
訪問錯誤中心查看更多錯誤碼。