當需精確防護特定攻擊(如惡意調用、惡意請求、高頻掃描)時,可使用自訂規則,通過靈活的匹配條件和規則動作,構建個人化防護策略。
關鍵概念
自訂規則:Web核心防護中的防護模組之一。啟用此模組前必須建立防護模板,系統支援建立多個防護模板。
防護模板:防護模板是防護規則的集合,用於定義具體的規則內容和作用範圍。其由以下三部分組成:模板類型、防護規則、生效對象。
模板類型:防護模板建立時需指定類型,且建立後不可更改。模板類型分為以下兩種:
模板類型
說明
適用情境
預設防護模板
模板建立時,預設對所有防護對象和對象組生效,後續新增的對象也自動生效。
支援手動將特定對象排除(設定為“未生效”)。
在自訂規則模組下,僅能建立一個預設防護模板。
部署通用的、需全域執行的防護規則。
自訂防護模板
必須手動指定其生效的防護對象或對象組。
針對特定業務(如登入、支付介面)部署精細化的防護規則。
防護規則:定義具體的檢測邏輯和響應措施。一個防護模板可包含多條防護規則,每條規則由以下三部分組成:
匹配條件:定義檢測的請求特徵(如請求路徑、用戶端 IP 位址等)。
防護類型:支援三種檢測維度,分別為存取控制、頻率控制與插件执行。
規則動作:定義命中規則後的處置措施,規則動作的優先順序從高到低依次為:攔截、嚴格滑塊、滑塊、JS 驗證、觀察。
說明當一個請求同時命中同一防護模組中的多條規則,且這些規則的規則動作相同時,則最終匹配到的規則是隨機生效的。
生效對象:指定防護模板的應用目標。通過生效對象設定,將防護規則應用到指定的防護對象或防護對象組。一個防護對象或對象組可以關聯多個防護模板。
防護對象:每個接入 WAF 的網域名稱或雲產品執行個體,系統會為其自動建立一個防護對象。
防護對象組:可將多個防護對象加入一個防護對象組,以便集中管理。
操作步驟
執行以下步驟前,請確保已存在防護對象(已將Web業務接入WAF),若尚未將業務接入,請參見接入概述。
登入Web Application Firewall3.0控制台。在頂部功能表列,選擇WAF執行個體的資源群組和地區(中國內地、非中國內地),在左側導覽列,選擇。
步驟一:配置防護模板類型
在Web 核心防護頁面下方自訂規則地區,單擊建立模板。在建立模板面板,完成以下配置。
模板名稱:為該模板設定一個名稱。
是否設定為預設範本:自訂規則模組僅能設定一個預設範本,且僅能在建立模板時設定。
是:無需設定生效對象,模板建立時,預設對所有防護對象和對象組生效,後續新增的對象也自動生效。支援手動將特定對象排除(設定為“未生效”)。
否:需要設定生效對象,手動指定其生效的防護對象或對象組。
步驟二:在防護模板中添加防護規則
在規則配置地區,單擊建立規則,完成以下配置。
規則名稱:為該規則設定一個名稱。
匹配條件:設定該規則要匹配的請求特徵。通過單擊新增條件添加一個條件。每個條件由匹配欄位、邏輯符和匹配內容組成。配置樣本如下:
說明若規則包含多個條件,則請求必須滿足所有條件(邏輯與關係),才能命中該規則。關於匹配欄位和邏輯符的詳細說明,請參見匹配條件說明。
若需對多個介面(URI)應用相同規則,建議在單條規則中使用包含多值之一邏輯符(形成"或"關係)。
匹配欄位
邏輯符
匹配內容
說明
URI Path
包含
/login.php當請求的路徑包含
/login.php時,則請求命中該規則。IP
屬於
192.1.XX.XX當用戶端IP為
192.1.XX.XX時,則請求命中該規則。防護類型:支援存取控制、頻率控制與插件执行三種類型。
存取控制:適用於對特定類型的請求執行精確管控的情境。
頻率控制:適用於基於訪問頻率的情境(如防刷、防暴力破解)。僅訂用帳戶企業版、旗艦版和隨用隨付版支援此功能。
插件执行:適用於需通過自訂 Lua 指令碼實現複雜商務邏輯的個人化安全管控情境,請優先配置擴充外掛程式。
存取控制
配置存取控制規則,對符合特定條件的單次請求執行指定操作。
頻率控制
配置頻率控制規則,限制用戶端的過度訪問。
頻率檢測條件:當單個統計對象在指定的統計時間長度(秒)內命中規則的次數超過設定的閾值(次)時,觸發黑名單處置。
配置項
說明
統計對象
選擇請求頻率的統計對象。可選項:
IP:統計同一個IP發起請求的頻率。
自訂header:基於自訂要求標頭(如
Referer)的值進行分組,統計在指定時間段內,每組相同要求標頭值所對應的請求頻率。自訂參數:統計URL中包含指定參數的請求頻率。例如,若參數為
user_id,WAF將統計具有相同user_id值的請求頻率。自訂cookie:統計在指定時間段內,HTTP請求中包含特定Cookie的頻率。例如,當自訂Cookie名稱為 User 時,將統計在該時間段內每個 User 值的出現次數。
Session:WAF通過在響應中設定名為
acw_tc的Cookie來建立會話標識,並基於該Cookie的值統計用戶端請求頻率。账号:統計同一個帳號發起請求的頻率。需要在防護對象版面設定账号提取配置後,才能配置此項,詳細資料,請參見配置防護對象和防護對象組。
統計時間長度(秒)
設定統計周期。單位:秒。
閾值(次)
設定在統計時間長度(秒)內,允許統計對象命中匹配條件的最大次數。
響應碼檢測條件:當響應碼的響應數量或比例(%)超過設定的閾值時,觸發黑名單處置。啟用響應碼檢測後,統計對象需同時滿足頻率檢測條件和響應碼特徵條件,才會觸發黑名單處置。
配置項
說明
響應碼
設定需要統計的響應碼。
數量
設定在統計時間長度內,允許指定的響應碼在請求響應中出現的最大次數。
比例(%)
設定在統計時間長度內,允許指定的響應碼在請求響應中的最大佔比。
黑名單處置條件:將命中上述檢測條件的統計對象加入黑名單,在黑名單逾時時間內,對來自該對象黑名單生效範圍內的請求執行規則動作中定義的處置。
配置項
說明
黑名單生效範圍
設定黑名單處置的生效範圍。可選值:
僅作用於當前規則的匹配條件:表示只處置滿足當前規則匹配條件的請求。
作用於整個防護對象:表示對該統計對象(如IP)發起的,訪問當前防護對象的所有請求執行處置動作。
黑名單逾時時間
設定黑名單處置的生效時間長度。單位:秒。取值範圍:60~86400。
外掛程式執行
從已配置的擴充外掛程式規則中進行選擇,實現個人化的安全管控。
說明外掛程式執行規則僅支援攔截與觀察兩種規則動作。
規則動作:選擇當請求命中該規則時,要執行的防護動作。
配置項
說明
JS驗證
WAF向用戶端返回一段JavaScript驗證代碼,標準瀏覽器將自動執行該代碼。若用戶端正常執行完成,則WAF在一段時間(預設30分鐘)內允許存取該用戶端的所有請求,否則攔截請求。
攔截
攔截命中規則的請求,並向發起請求的用戶端返回攔截響應頁面。
說明WAF預設使用統一的攔截響應頁面,也可以通過自訂響應功能,自訂攔截響應頁面。
觀察
不攔截命中規則的請求,僅通過日誌記錄請求命中的情況。在試運行規則時,可以先通過觀察模式分析WAF日誌,以確認未產生誤攔截,再將其調整為其他規則動作。
滑塊
WAF向用戶端返回滑動驗證頁面。若用戶端成功完成滑動驗證,則WAF在一段時間(預設30分鐘)內允許存取該用戶端的所有請求,否則攔截請求。
嚴格滑塊
WAF向用戶端返回滑動驗證頁面。若用戶端成功完成滑動驗證,則允許存取該請求;否則攔截請求。在此模式下,用戶端每次命中該規則的請求均需進行滑動驗證。
說明僅隨用隨付執行個體以及訂用帳戶企業版和旗艦版執行個體支援滑塊驗證。
JS驗證或滑塊驗證僅適用於同步請求。對於XMLHttpRequest、Fetch方法等非同步請求,必須注入Web SDK,否則無法正常運行。具體操作,請參見Bot管理的JS校正和滑塊驗證功能。
啟用JS驗證或滑塊後,用戶端通過驗證時,WAF將在回應標頭中通過Set-Cookie 設定名為
acw_sc__v2(JS驗證)或acw_sc__v3(滑塊驗證)的 Cookie。用戶端在後續請求中會在 Cookie 頭中攜帶該標識。
進階設定(可選):僅訂用帳戶企業版、旗艦版和隨用隨付版支援如下進階功能。
配置項
說明
規則灰階
配置規則針對不同維度對象的生效比例。
開啟規則灰階後,還需要設定維度和灰階比例。維度包括:IP、自訂Header、自訂參數、自訂Cookie、Session。
說明規則灰階根據配置的維度生效,而非對請求按比例隨機生效規則。例如,當維度為IP且灰階比例為10%時,WAF將選擇約10%的IP地址;被選中的IP地址,其所有請求均應用該規則,而非對所有請求按10%的比例隨機應用。
生效模式
永久生效(預設):防護模板開啟時,規則永久生效。
按時間段生效:防護規則僅在指定的一段時間內生效。
按周期生效:防護規則僅在指定的時間周期內生效。
步驟三:設定防護模板生效對象
在生效對象地區,選擇要應用於該模板的防護對象和防護對象組。
模板的生效方式取決於在步驟一的配置:
設定為預設防護模板:無需設定生效對象,模板建立時,預設對所有防護對象和對象組生效,後續新增的對象也自動生效。支援手動將特定對象排除(設定為“未生效”)。
未設為預設防護模板:需要手動設定生效的防護對象和防護對象組。
模板建立時與建立完成後,均支援手動調整防護對象或防護對象組生效狀態。
防護規則配置樣本
以下配置樣本僅供參考。在生產環境部署前,您必須根據實際業務流量和攻擊特徵進行調整。直接複製並應用以下樣本可能導致正常業務中斷或防護無效。
限制管理後台僅允許指定IP訪問
攔截所有對 /wp-admin 路徑的訪問請求,僅允許來自管理員 IP 位址192.1.XX.XX 的請求通過。
匹配條件:
匹配欄位為
IP、邏輯符為不屬於、匹配內容為管理員的白名單IP192.1.XX.XX。匹配欄位為
URI Path、邏輯符為包含、匹配內容為不希望被訪問的網頁路徑/wp-admin。
防護類型:存取控制。
規則動作:攔截。
屏蔽惡意爬蟲和掃描器訪問
在配置自訂規則時,可以參考以下常見的 User-Agent (UA) 特徵來輔助識別流量類型:
安全掃描工具: 如
sqlmap,nmap,nikto等(通常用於漏洞探測)。自動化指令碼/庫: 如
python-requests,Python-urllib,curl/,Wget/等(常用於指令碼調用或非瀏覽器訪問)。資料擷取爬蟲: 如
MJ12bot,AhrefsBot,SemrushBot等(SEO 分析或內容抓取)。主流搜尋引擎: 如
Googlebot,Baiduspider,bingbot等。移動端標識:如
Mobile、Android、iPhone、iPad等。
僅依賴 UA 欄位無法精準判定惡意流量(攻擊者常偽裝成正常瀏覽器 UA)。建議配置自訂規則時,結合 IP 信譽、訪問頻率及 WAF 日誌進行綜合研判,避免誤殺正常業務請求。
以下樣本表示攔截UA欄位中包含bot的HTTP請求。
匹配條件:匹配欄位為
User-Agent、邏輯符為包含、匹配內容為UA特徵bot。防護類型:存取控制。
規則動作:攔截。
為網站頁面啟用人機驗證
對被惡意訪問的請求路徑(如/index.php)啟用JS驗證,在不影響正常瀏覽器訪問的前提下攔截自動化攻擊工具。
針對靜態頁面,可以設定JS驗證或滑塊驗證規則,以確保請求來源為可執行 JavaScript 的標準瀏覽器。此類驗證僅適用於同步請求,不適用於XMLHttpRequest、Fetch方法等非同步請求。
針對純後端服務間調用的API介面,不建議配置JS驗證。JS驗證依賴瀏覽器環境執行,而API調用方通常為服務端程式或自動化指令碼,無法解析並執行JavaScript代碼,這將導致合法請求被持續攔截。建議在配置匹配條件時,將API介面排除在JS驗證範圍之外。
匹配條件:匹配欄位為
URI Path、邏輯符為包含、匹配內容為/index.php。防護類型:存取控制。
規則動作:JS驗證或滑塊。
API介面限流
對除example.com/api/pay介面外的所有介面啟用頻率控制,此處以所有API介面URI均包含/api 字串為例。
匹配條件:
匹配欄位為
URI Path、邏輯符為不等於、匹配內容為/api/pay。匹配欄位為
URI Path、邏輯符為包含、匹配內容為/api。
防護類型:頻率控制。
統計對象:IP。
統計時間長度(秒):10。
閾值(次):5。
黑名單生效範圍:僅作用於當前規則的匹配條件。
黑名單逾時時間:1800。
規則動作:攔截。
應用於生產環境
為避免影響正常業務,請勿在生產環境直接建立並啟用攔截動作的防護規則。建議遵循以下流程進行部署。
分析請求特徵:使用WAF安全報表與日誌,識別正常業務請求與惡意攻擊的特徵(如 IP、User-Agent、Header、URI 等)。如需計劃配置頻率控制規則,還需確定正常業務的請求頻率基準。
配置白名單:在建立自訂規則模板前,建議建立白名單規則,將可信IP加入白名單,防止可信請求被新規則誤攔截。
灰階測試:自訂規則建立完成後,可以使用以下三種方式,在部署到生產環境前進行觀察測試。
將規則應用於非生產環境進行測試。
將規則動作設定為觀察。
在進階設定中開啟規則灰階。
分析測試結果:運行一段時間後,觀察安全報表與日誌,查看命中規則的請求是否存在誤判。
應用至生產環境:確認誤判率在可接受範圍內後,將規則動作調整為目標動作,並應用於生產環境。
持續監控與最佳化:持續關注安全報表與日誌,根據業務變化和實際防護效果,動態調整和最佳化規則。
日常營運
管理防護模板
建立的防護模板預設開啟,可以在防護模板列表執行如下操作:
查看模板關聯的防護對象/組的數量。
通過模板開關,開啟或關閉模板。
為該模板建立規則。
編輯、刪除或複製防護模板。
單擊防護模板名稱左側的
表徵圖,查看該防護模板包含的規則資訊。
管理防護規則
建立的規則預設開啟。可以在規則列表執行如下操作:
查看規則ID、規則條件等資訊。
通過狀態開關,開啟或關閉規則。
編輯或刪除規則。
配額與限制
僅隨用隨付執行個體、訂用帳戶企業版和旗艦版執行個體支援滑塊驗證、頻率控制與進階設定功能。
單個防護規則最多可添加5個匹配條件。
選擇等於多值之一、包含多值之一等匹配條件邏輯符時,最多支援輸入50個匹配內容。若需匹配超過50個值,建議拆分為多條規則,或使用包含、正則匹配等方式替代。
常見問題
為什麼配置的規則不生效?
若配置的規則未按預期生效,請按以下順序檢查:
防護對象未關聯:確認自訂規則模板已正確添加並關聯了具體的防護對象/組(如ALB執行個體、網域名稱等)。若未添加防護對象,規則不會生效。
模板與規則狀態:確認防護模板及具體規則的狀態均為"開啟"。

匹配條件準確性:檢查匹配欄位、邏輯符和匹配內容是否能被請求正確匹配。使用Regex時,請注意轉義。
其他規則:確認是否配置了其他防護規則或防護模組,例如白名單規則會提前允許存取請求。
雲產品接入方式下,多個網域名稱解析指向了一個雲產品執行個體,如何配置頻率控制?
頻率控制規則按照防護對象維度來限制同一統計對象的請求頻率。若一個雲產品執行個體包含多個網域名稱的流量,則統計訪問頻率時將對所有網域名稱的訪問量進行匯總統計。若只需限制對某個網域名稱的訪問頻率,可以選擇以下兩種方式之一進行配置:
將網域名稱添加為WAF的防護對象,並為該網域名稱對象應用頻率控制規則。更多資訊,請參見配置防護對象和防護對象組。
在頻率控制規則的匹配條件中,通過Host欄位定義要限制訪問頻率的網域名稱。
用戶端請求命中規則時,在不同規則動作下看到的效果是什嗎?
規則動作為觀察:
命中規則後,使用者請求是否到達來源站點:是。
命中規則後,使用者看到的效果:與未接入waf時相同。
規則動作為攔截:
命中規則後,使用者請求是否到達來源站點:否。
命中規則後,使用者看到的效果:預設情況下,返回如下頁面。

規則動作為JS驗證且使用者驗證通過(如常規瀏覽器):
命中規則後,使用者請求是否到達來源站點:是。
命中規則後,使用者看到的效果:驗證過程對使用者透明無感。WAF 通過在回應標頭中設定
Set-Cookie: acw_sc__v2下發驗證標識。用戶端在後續請求中自動攜帶該 Cookie。可通過瀏覽器開發人員工具檢查要求標頭中是否存在acw_sc__v2欄位,以確認驗證是否完成。
規則動作為JS驗證且使用者驗證不通過(如自動化攻擊工具):
命中規則後,使用者請求是否到達來源站點:否。
命中規則後,使用者看到的效果:此類用戶端無法完成驗證,請求將被攔截。下圖使用禁用 JavaScript 的瀏覽器外掛程式進行訪問,頁面將因驗證失敗而無法載入(呈現白屏),且要求標頭中不包含
acw_sc__v2Cookie。
規則動作為滑塊/嚴格滑塊:
命中規則後,使用者請求是否到達來源站點:
驗證通過的請求:是。
驗證不通過的請求:否。
命中規則後,使用者看到的效果:預設情況下,返回如下頁面。驗證通過後,自動跳轉至原網頁;驗證失敗則顯示錯誤提示並停留於當前頁面,使用者需重新整理頁面以重新驗證。

配置自訂規則匹配欄位Body Parameter後為何不生效?
可能原因是填寫的匹配內容長度過短,使用Body Parameter欄位時請確保匹配內容長度>=5個字元,否則流量無法被檢測。