全部產品
Search
文件中心

Web Application Firewall:配置Bot管理進階自訂規則

更新時間:Aug 20, 2025

接入Bot管理後,您可以自訂存取控制規則和頻率控制規則,防禦符合規則的請求,進階自訂規則增加了更豐富的匹配條件,如Client ID、JA3/JA4指紋、Web/App SDK採集資訊等。同時支援基於條件的去重統計能力。本文介紹如何建立Bot自訂規則模板並添加自訂規則。

背景資訊

自訂規則分為以下類型:

自訂規則

說明

存取控制規則

根據用戶端IP、請求URL及常見的要求標頭欄位定義請求特徵匹配條件,對命中匹配條件的請求執行相應處置。例如,您可以使用自訂規則攔截訪問指定Client ID的請求、對包含指定的網頁端UMID、App端UMID等內容的請求進行校正等。

頻率控制規則

在存取控制匹配條件的基礎上,定義訪問頻率檢測條件,對訪問頻率異常的統計對象執行相應處置。例如,如果同一個IP或會話在短時間內頻繁命中匹配條件,您可以通過啟用頻率控制,在一段時間內攔截該IP或會話的請求。

步驟一:建立自訂規則模板

  1. 登入Web Application Firewall3.0控制台。在頂部功能表列,選擇WAF執行個體的資源群組和地區(中国内地非中国内地

  2. 模板,單擊新建模板,在建立模板-進階自訂規則面板中完成以下配置,單擊確定

    配置項

    說明

    模板名称

    為該模板設定一個名稱。

    長度為1~255個字元,支援中文和大小寫英文字母,可包含數字、半形句號(.)、底線(_)和短劃線(-)。

    规则配置

    您可以單擊新建规则,為當前模板建立自訂規則;或者忽略該設定,在建立規則模板後,再為模板建立規則。

    生效对象

    從已添加的配置防護對象和防護對象組中,選擇要應用該模板的配置防護對象和防護對象組。

建立的防護模板預設開啟,您可以在防護模板列表執行如下操作:

  • 查看模板關聯的防护对象/组的數量。

  • 通過模板开关,開啟或關閉模板。

  • 為該模板新建规则

  • 编辑删除复制防護模板。

  • 單擊防護模板名稱左側的展開表徵圖 表徵圖,查看該防護模板包含的規則資訊。

步驟二:建立自訂規則

只有添加防護規則後,自訂規則模板才具有防護作用。在新建规则對話方塊,完成以下配置,單擊確定

如果您已在步驟一添加了防護規則,可跳過該步驟。

配置項

說明

规则名称

為該規則設定一個名稱。

支援中文和大小寫英文字母,可包含數字、半形句號(.)、底線(_)和短劃線(-)。

匹配条件

設定該規則要匹配的請求特徵。

單擊新增条件,添加一個條件。一個規則中最多可以添加10個條件。如果定義了多個條件,則只有當多個條件同時滿足時,才算命中規則。

每個條件由匹配欄位邏輯符匹配內容組成。配置樣本如下:

  • 樣本1:匹配欄位URI邏輯符包含匹配內容/login.php,表示當被請求的路徑包含/login.php時,則請求命中該規則。

  • 樣本2:匹配欄位IP邏輯符屬於匹配內容192.1X.XX.XX,表示當發起串連的用戶端IP為192.1.XX.XX時,則請求命中該規則。

防护类型

預設访问控制,單擊频率控制開啟頻率控制。

頻率控製表示如果來自同一統計對象(IP、會話等)的請求頻繁地命中規則,則在一段時間內,對該統計對象的所有訪問執行相應處置,啟用頻率控制後,您需要設定頻率控制參數。

  • 頻率檢測條件

    统计时长(秒)內,一個统计对象命中規則的次數超過阈值(次),則對該對象進行黑名單處置。

    • 统计对象

      選擇請求頻率的統計對象。可選項:

      • IP:表示統計同一個IP發起請求的頻率。

      • 自定义header:表示統計包含指定Header的請求的頻率。例如,對於自訂的header標識符Referer,在指定的統計時間段內,計算每個不同Referer值的請求出現次數。

      • 自定义参数:自訂參數匹配URL中的關鍵字,表示統計包含指定參數的請求的頻率。

      • 自定义cookie:統計在特定的時間段內,HTTP請求中包含指定Cookie的頻率。例如,自訂Cookie為User時,將統計在統計時間長度內每個User值的出現次數。

      • Session:WAF預設會在響應中插入acw_tc來識別和統計不同的用戶端訪問,統計相同acw_tc發起請求的頻率。

      • Body参数:請求Body中的參數,表示統計包含指定Body參數的請求的頻率。

      • APP端UMID:表示統計同一個App端發起請求的頻率。

      • 账号:表示統計同一個帳號發起請求的頻率。

      • 网页端UMID:表示統計同一個網頁端發起請求的頻率。

    • 统计时长(秒)

      設定統計周期。單位:秒。

    • 阈值(次)

      設定在统计时长(秒)內,允許统计对象命中匹配条件的最大次數。

  • 響應碼檢測條件

    獲得响应码的響應數量或比例超過設定的数量比例(%)時,則對該對象進行黑名單處置。

    • 响应码

      選擇是否在頻率檢測的基礎上,啟用響應碼檢測,即防護對象既要滿足頻率檢測條件,還要滿足特定的響應碼特徵,才會觸發黑名單處置。啟用響應碼檢測時,需設定要統計的響應碼。

    • 数量

      設定在統計時間長度內,允許指定的响应码在請求響應中出現的最大次數。

      說明

      数量比例(%)二選一。

    • 比例(%)

      設定在統計時間長度內,允許指定的响应码在請求響應中的最大佔比。

      說明

      数量比例(%)二選一。

  • 去重統計

    去重統計後的對象如果命中統計規則,則對該對象進行黑名單處置。單擊新增条件,添加一個條件。一個規則中最多可以添加5個條件。如果定義了多個條件,則只有當多個條件同時滿足時,才算命中規則。

    每個條件由匹配欄位邏輯符匹配內容組成。配置樣本如下:

    匹配欄位URI邏輯符等於數量5,表示訪問匹配條件中設定的URI去重後的次數等於5,則請求命中該規則。

  • 黑名單處置條件

    將命中頻率檢測條件的統計對象加入黑名單,在黑名单超时时间內,對來自該對象黑名单生效范围內的請求執行处置动作中定義的處置。

    • 黑名单生效范围

      設定黑名單處置的生效範圍。可選值:

      • 仅作用于当前规则的匹配条件:表示只處置滿足當前規則匹配条件的請求。

      • 作用于整个防护对象:表示處置受限制對象的所有請求。

    • 黑名单超时时间

      設定黑名單處置的生效時間長度。單位:秒。取值範圍:60~86400。

处置动作

  • 拦截:表示攔截命中規則的請求,並向發起請求的用戶端返回攔截響應頁面。

    說明

    WAF預設使用統一的攔截響應頁面,您可以通過自訂響應功能,自訂攔截響應頁面。更多資訊,請參見設定自訂響應規則配置攔截響應頁面

  • 观察:表示不攔截命中規則的請求,只通過日誌記錄請求命中了規則。您可以通過WAF日誌,查詢命中當前規則的請求,分析規則的防護效果(例如,是否有誤攔截等)。

    觀察模式方便您試運行首次配置的規則,待確認規則沒有產生誤攔截後,再將規則設定為其他處置動作模式。

  • JS验证:表示WAF向用戶端返回一段正常瀏覽器可以自動執行的JavaScript代碼。如果用戶端正常執行了JavaScript代碼,則WAF在一段時間(預設30分鐘)內允許存取該用戶端的所有請求(不需要重複驗證),否則攔截請求。

  • 滑块:表示WAF向用戶端返回滑動驗證頁面。如果用戶端成功執行滑動驗證,則WAF在一段時間(預設30分鐘)內允許存取該用戶端的所有請求(不需要重複驗證),否則攔截請求。

  • 严格滑块:表示WAF向用戶端返回滑動驗證頁面。如果用戶端成功執行滑動驗證,則WAF允許存取本次請求,否則攔截請求。嚴格滑塊驗證模式下,用戶端的每次請求都需要驗證。

  • 回源标记:表示客戶可以自訂Header名稱及內容(規則類型、規則ID、網頁端UMID),WAF不會直接處理,而是會通過新增Header的方式將命中資訊返回給來源站點,客戶可以與後端風控系統結合做業務側處理。

规则分类

對自訂規則進行分類後,相應的命中流量將在流量分析頁面的惡意Bot和疑似Bot走勢圖中得到統計。

  • 疑似BOT:存在部分爬蟲表徵,但缺乏直接證據(如攻擊痕迹或明確意圖),需進一步驗證其意圖。

  • 恶意BOT:以非法目的為主導,通過自動化手段對目標系統或網路發起攻擊、竊取資料或執行惡意操作的自動化程式。

高级设置

  • 规则灰度:配置規則是針對不同維度對象的生效比例。

    開啟規則灰階後,您還需要設定灰階维度灰度比例。灰階维度包括:IP自定义Header自定义参数自定义CookieSessionAPP端UMID网页端UMID

    說明

    灰階規則是基於您設定的维度進行灰階,而不是對請求按比例隨機生效規則。例如,若您選擇IP維度進行灰階規則,那麼觸發該灰階規則的IP請求就都會命中該防護規則。

  • 生效模式

    • 永久生效(預設):防護模板開啟時,規則永久生效。

    • 按时间段生效:為防止更新的防護規則在活動前被攻擊者識別和破解,通常選擇在活動開始時生效新規則。您可以將具體某一時區的一段時間設定為防護規則的生效時間。

    • 按周期生效:適用於周期性活動,需在活動期間啟用更嚴格的防護規則,其他時間則使用較寬鬆的規則;或在低流量時段下發新規則以驗證其效果和誤判風險。您可以將具體某一時區的每一天的一段時間設定為防護規則的生效時間。

建立的規則預設開啟。您可以在規則列表執行如下操作:

  • 查看规则ID规则条件等資訊。

  • 通過状态開關,開啟或關閉規則。

  • 编辑删除規則。

匹配欄位說明

匹配欄位

說明

支援的邏輯符

URI

請求的統一資源識別項URI(Uniform Resource Identifier),表示被請求的資源的路徑。一般來說,URI=URI Path + Query String

對應匹配內容以/開頭,不包含網域名稱,例如,/login.php

  • 包含、不包含

  • 等於、不等於

  • 長度小於、長度等於、長度大於

  • 等於多值之一、不等於任一值

  • 包含多值之一、不包含任一值

  • 正則不匹配、正則匹配

  • 首碼匹配、尾碼匹配

IP

請求的來源IP,即發起請求的用戶端的IP地址。

匹配內容填寫要求如下:

  • 支援使用IPv4地址(例如,1.XX.XX.1)、IPv6地址(例如,2001:db8:ffff:ffff:ffff:ffff:ffff:ffff)。

  • 支援使用IP網段格式(例如,1.XX.XX.1/16)。

  • 每輸入一個IP地址,按斷行符號進行確認。

  • 最多支援設定100個IP地址。

不屬於、屬於

Referer

請求的來源網址,即該請求從哪個頁面跳轉產生。

  • 包含、不包含

  • 等於、不等於

  • 長度小於、長度等於、長度大於

  • 等於多值之一、不等於任一值

  • 包含多值之一、不包含任一值

  • 正則不匹配、正則匹配

  • 首碼匹配、尾碼匹配

  • 內容為空白

  • 存在、不存在

User-Agent

發起請求的用戶端的瀏覽器標識、渲染引擎標識和版本資訊等瀏覽器相關資訊。

  • 包含、不包含

  • 等於、不等於

  • 長度小於、長度等於、長度大於

  • 等於多值之一、不等於任一值

  • 包含多值之一、不包含任一值

  • 正則不匹配、正則匹配

  • 首碼匹配、尾碼匹配

  • 內容為空白

  • 存在、不存在

Query String

請求中的查詢字串,具體指URL中問號(?)後面的部分。

  • 包含、不包含

  • 等於、不等於

  • 長度小於、長度等於、長度大於

  • 等於多值之一、不等於任一值

  • 包含多值之一、不包含任一值

  • 正則不匹配、正則匹配

  • 存在、不存在

Cookie

請求中的Cookie資訊。

  • 包含、不包含

  • 等於、不等於

  • 長度小於、長度等於、長度大於

  • 等於多值之一、不等於任一值

  • 包含多值之一、不包含任一值

  • 正則不匹配、正則匹配

  • 存在、不存在

  • 內容為空白

Content-Type

請求指定的響應HTTP內容類型,即多用途互連網郵件擴充類型MIME(Multipurpose Internet Mail Extensions)類型資訊。

  • 包含、不包含

  • 等於、不等於

  • 長度小於、長度等於、長度大於

  • 等於多值之一、不等於任一值

  • 包含多值之一、不包含任一值

  • 正則不匹配、正則匹配

Content-Length

請求內容所包含的位元組數。取值範圍:0~2147483648。

等於、值小於、值大於

X-Forwarded-For

請求的用戶端真實IP。X-Forwarded-For(XFF)用來識別通過HTTP代理或負載平衡方式轉寄的請求的用戶端最原始的IP地址的HTTP要求標頭欄位,只有通過HTTP代理或者負載平衡伺服器轉寄的請求才會包含該項。

  • 包含、不包含

  • 等於、不等於

  • 長度小於、長度等於、長度大於

  • 等於多值之一、不等於任一值

  • 包含多值之一、不包含任一值

  • 正則不匹配、正則匹配

  • 不存在

Body

請求的內容資訊。

  • 包含

  • 不存在

  • 等於

  • 正則匹配

  • 首碼匹配、尾碼匹配

Http-Method

請求的方法,包括GET、POST、DELETE、PUT、OPTIONS、CONNECT、HEAD、TRACE、PATCH。

  • 不等於、等於

  • 等於多值之一、不等於任一值

Header

請求的頭部資訊。支援自訂的頭部欄位。

  • 包含、不包含

  • 等於、不等於

  • 長度小於、長度等於、長度大於

  • 等於多值之一、不等於任一值

  • 包含多值之一、不包含任一值

  • 正則不匹配、正則匹配

  • 存在、不存在

URI Path

請求的URI路徑。

  • 包含、不包含

  • 等於、不等於

  • 長度小於、長度等於、長度大於

  • 等於多值之一、不等於任一值

  • 包含多值之一、不包含任一值

  • 正則不匹配、正則匹配

  • 首碼匹配、尾碼匹配

Query String Parameter

請求參數的參數名。請求參數指請求的URL中問號(?)後面的部分。例如,www.aliyundoc.com/request_path?param1=a&param2=b中,param1param2都是請求參數。

說明

Query String Parameter的自訂Parameter大小寫敏感。

  • 包含、不包含

  • 等於、不等於

  • 長度小於、長度等於、長度大於

  • 等於多值之一、不等於任一值

  • 包含多值之一、不包含任一值

  • 正則不匹配、正則匹配

  • 首碼匹配、尾碼匹配

  • 存在、不存在

  • 內容為空白

Client-ID

用戶端(如瀏覽器或應用程式)標識,通過User Agent資訊和流量指紋等特徵來識別HTTP請求來源於哪種用戶端。

  • 包含、不包含

  • 等於、不等於

  • 等於多值之一

Server-Port

伺服器連接埠。

  • 不等於、等於

  • 等於多值之一、不等於任一值

File Extension

被請求檔案的副檔名,例如,.png.php

  • 包含、不包含

  • 等於、不等於

  • 長度小於、長度等於、長度大於

  • 等於多值之一、不等於任一值

  • 包含多值之一、不包含任一值

  • 正則不匹配、正則匹配

  • 首碼匹配、尾碼匹配

  • 存在、不存在

  • 內容為空白

Filename

請求路徑末尾的檔案名稱。例如,在/abc/index.php中,index.php表示檔案名稱。

  • 包含、不包含

  • 等於、不等於

  • 長度小於、長度等於、長度大於

  • 等於多值之一、不等於任一值

  • 包含多值之一、不包含任一值

  • 正則不匹配、正則匹配

  • 首碼匹配、尾碼匹配

  • 存在、不存在

  • 內容為空白

Host

被請求的網域名稱。

  • 包含、不包含

  • 等於、不等於

  • 長度小於、長度等於、長度大於

  • 等於多值之一、不等於任一值

  • 包含多值之一、不包含任一值

  • 正則不匹配、正則匹配

  • 首碼匹配、尾碼匹配

  • 存在、不存在

  • 內容為空白

Cookie Name

Cookie的鍵名稱。例如,在acw_tc:111這個Cookie中,acw_tc是Cookie的鍵名稱。

說明

Cookie Name的自訂Cookie-Exact大小寫敏感。

  • 包含、不包含

  • 等於、不等於

  • 長度小於、長度等於、長度大於

  • 等於多值之一、不等於任一值

  • 包含多值之一、不包含任一值

  • 正則不匹配、正則匹配

  • 首碼匹配、尾碼匹配

  • 存在、不存在

  • 內容為空白

Body Parameter

請求Body中的參數名稱。例如,請求Body中包含以下JSON字串a=1&b=2,那麼ab就是參數名稱。使用該欄位時請確保匹配內容長度大於四個字元,否則流量無法被檢測。

說明

Body Parameter的自訂Post-Arg大小寫敏感。

  • 包含、不包含

  • 等於、不等於

  • 長度小於、長度等於、長度大於

  • 等於多值之一、不等於任一值

  • 包含多值之一、不包含任一值

  • 正則不匹配、正則匹配

  • 首碼匹配、尾碼匹配

  • 存在、不存在

  • 內容為空白

JA3 Fingerprint

通過將TLS握手過程中的關鍵參數(包括TLS版本、密碼套件、壓縮演算法和TLS擴充等資訊)進行MD5雜湊處理,產生一個字串用來表示用戶端的TLS配置,該字串即JA3指紋。

JA3指紋可以用於識別和區分不同類型的TLS用戶端,例如Web瀏覽器、行動裝置 App程式、惡意軟體等。

  • 等於、不等於

  • 等於多值之一

JA4 Fingerprint

JA4指紋通過引入更多的上下文資訊和演算法,例如瀏覽器的版本、作業系統等,減少了JA3指紋可能導致的重複性問題。

JA4指紋能夠更準確地鑒別出真實的使用者與偽裝者,降低誤識率。

  • 等於、不等於

  • 等於多值之一

HTTP/2 Fingerprint

根據HTTP2用戶端的原始指紋,利用MD5演算法處理後產生的HTTP2.0指紋。用來分析和識別不同的用戶端,實現更安全和高效的通訊。

  • 等於、不等於

  • 等於多值之一

IDC

基於源IP歸屬資料識別流量來源,雲端服務器成本較低,黑灰產易利用進行攻擊。

等於多值之一、不等於任一值

Web SDK

通過WebSDK採集到的探針資訊,如網頁端UMID、鍵盤/滑鼠/觸控螢幕按下次數等,識別異常流量。

  • 等於

  • 值大於、值小於

App SDK

可基於App SDK採集的探針資訊做精細化管控。

  • 包含、不包含

  • 等於、不等於

  • 長度小於、長度等於、長度大於

  • 等於多值之一、不等於任一值

  • 包含多值之一、不包含任一值

  • 正則匹配、正則不匹配

  • 首碼匹配、尾碼匹配

  • 存在、不存在

  • 內容為空白