如果您的網站需要自訂控制使用者的存取原則,您可以在自訂規則中佈建要求匹配條件,並通過攔截、觀察等方式控制匹配到的使用者請求,協助您的網站更加靈活的限制使用者可訪問的內容。
用戶端 IP 歸屬的準確性說明
使用 WAF 自訂規則結合規則引擎來攔截用戶端請求時,由於規則引擎對用戶端 IP 歸屬的「洲」、「國家 / 地區」、「省份」、「電訊廠商」資訊無法做到 100% 準確,很可能存在誤識別的情況,因此請謹慎使用。
如果出現用戶端 IP 歸屬資訊識別不準確的情況,可以使用白名單規則允許存取指定的 IP 位址,避免正常的用戶端 IP 被 WAF 誤攔截。
配置自訂規則
在ESA控制台選擇網站管理,在網站列單擊目標網站。
在左側導覽列,選擇。
單擊自訂規則頁簽,進入自訂規則頁簽,單擊新增規則。
單擊確定。
配置規則時,請注意以下事項:
User-Agent 匹配大小寫:配置 User-Agent 匹配規則時,若選擇不區分大小寫匹配模式,則匹配值需全部設定為小寫。同時,請根據實際需求確認選擇精準匹配(等於)還是模糊比對(包含),避免因匹配模式選擇不當導致規則未生效(例如狀態代碼仍返回 200)。
規則引擎能力邊界:當前 WAF 規則引擎僅支援判斷請求欄位是否包含特定字串(返回布爾值),不支援對匹配結果進行數組長度計算或計數判斷,因此無法實現"攔截 URL 中包含超過 N 個某關鍵詞"這類複雜邏輯。WAF 防護策略需基於用戶端 IP、User-Agent、Referer、URI 等請求特徵進行配置,不支援僅通過訪客 ID 等業務層標識進行攔截。
執行動作說明
攔截:表示攔截命中規則的請求,並向發起請求的用戶端返回攔截響應頁面。
說明若需要在攔截操作中自訂攔截頁面時,請參見自訂頁面。
觀察:表示不攔截命中規則的請求,只通過日誌記錄請求命中了規則。您可以通過WAF日誌,查詢命中當前規則的請求,分析規則的防護效果(例如,是否有誤攔截等)。觀察模式方便您試運行首次配置的規則,待確認規則沒有產生誤攔截後,再將規則設定為攔截模式。
說明只有開通Log Service,您才可以使用日誌查詢功能。
JS挑戰:表示ESA向用戶端返回一段正常瀏覽器可以自動執行的JavaScript代碼。如果用戶端正常執行了JavaScript代碼,則ESA在一段時間(預設30分鐘)內允許存取該用戶端的所有請求(不需要重複驗證),否則攔截請求。
滑塊挑戰:ESA向用戶端返回滑動驗證頁面。如果用戶端成功執行滑動驗證,則ESA在 30 分鐘(預設)內允許存取該用戶端的所有請求,否則攔截請求。
說明如果結果為通過(即正常使用者成功完成滑塊挑戰),則計入流量。如果結果為攔截,則免計流量。
WAF自訂規則、頻次控制規則的JS挑戰和滑塊驗證僅適用於靜態頁面。如需相容
XMLHttpRequest、Fetch等非同步介面響應,需在Bots中啟用JS挑戰和滑塊驗證。啟用後,當請求命中規則時,ESA對用戶端發起JS挑戰或滑塊驗證,當用戶端通過後將會在HTTP報文的Header中分別植入Cookie acw_sc__v2和acw_sc__v3,用於表示用戶端已通過驗證。
嚴格滑塊挑戰:嚴格滑塊驗證模式下,用戶端的每次請求都需要驗證(無滑塊挑戰的30分鐘內允許存取已通過挑戰用戶端請求的特性),請按需謹慎開啟。且嚴格滑塊挑戰僅Enterprise可申請開通使用。
自訂規則支援 JS 挑戰和滑塊驗證兩種人機驗證執行動作:
JS 挑戰:無感驗證。系統向用戶端下發 JavaScript 代碼自動完成驗證,使用者無需手動操作。
滑塊驗證:顯式驗證。使用者需完成滑動操作以通過驗證。
使用 JS 挑戰和滑塊驗證時,請注意以下限制:
JS挑戰和滑塊挑戰僅適用於靜態頁面請求,不適用於 POST 表單提交、API 介面等動態請求情境,否則可能導致表單資料丟失或重複觸發驗證。
對圖片等純資源檔啟用JS挑戰或滑塊挑戰時,可能因瀏覽器機制導致驗證失敗從而無法正常顯示資源。建議對純圖片類型網域名稱或資源路徑配置攔截動作或通過白名單允許存取,避免使用人機驗證。
JS挑戰通過後,允許存取時間長度預設為 30 分鐘,暫不支援調整。
如需一點即過等更多驗證碼類型,可使用AI驗證碼功能,支援一點即過、滑塊、旋轉等驗證方式,在 ESA 控制台單獨配置。
配置樣本
情境:通過安全分析或事件分析中發現了IP為192.168.0.1的用戶端向主機dns.example.com發起了異常請求行為。
配置方式:

參數 | 樣本值 |
如果請求匹配以下規則... | 同時滿足:
可直接編輯使用運算式: |
則執行… | 攔截並響應預設攔截頁面 |
防護效果:符合自訂規則條件的請求將被攔截。
常見配置樣本
以下為高頻防護情境的配置參考,可根據實際需求調整。
情境 1:攔截特定爬蟲(以 Bytespider 為例)
在如果請求匹配以下規則...地區設定:匹配欄位選擇User-Agent,運算子選擇包含,值填寫 Bytespider;在執行動作地區選取項目攔截。
情境 2:限制要求方法(僅允許 GET 和 POST)
配置規則:要求方法不等於 GET 且不等於 POST 時,執行攔截動作。此情境需進階版及以上套餐支援。
情境 3:僅允許指定 IP 訪問特定子網域名稱
組合兩個匹配條件:主機名稱等於目標子網域名稱,同時用戶端 IP 不等於指定 IP,執行動作選擇攔截。
情境 4:攔截空 Referer 請求並允許存取特定直訪路徑
需配置兩條規則並設定優先權:
白名單規則(高優先順序):當請求URI 等於需支援直訪的路徑(如首頁
/、文章頁)時,執行跳過全部規則動作。攔截規則(低優先順序):當Referer 為空白時,執行攔截動作。
白名單規則的優先順序必須高於攔截規則,以確保正常直訪路徑不受影響。
情境 5:攔截特定 URL 路徑的異常請求
配置組合條件:URI 包含特定字串,且Referer 為空白,執行動作選擇攔截或JS 挑戰。
不同套餐的支援情況
功能項 | Entrance | Pro | Premium | Enterprise |
自訂規則條數 | 5條 | 20條 | 100條 | 100條 |
免費版套餐不支援 Ip.Geoip.Country 等資源類型匹配條件。若在自訂規則中使用該欄位,系統將報錯 Ip.Geoip.Country.NotSupport,需升級至基礎版及以上套餐方可使用地理位置相關匹配條件。
常見問題
為什麼基於省/地區的攔截規則會出現誤攔截或無法識別 Unknown 地區?
IP 歸屬地資訊(洲、省/地區、省份、電訊廠商)無法做到 100% 準確,且 VPN 或代理服務會改變 IP 的歸屬地顯示,導致地理位置攔截失效。
私人 IP 段(如 100.64.0.0/10)及代理 IP 可能被識別為 Unknown 地區,ESA 不支援直接攔截 Unknown 地區。
建議:
在地區限制規則中增加 User-Agent 或 Referer 的組合條件(例如:非指定地區 AND User-Agent 不是特定值),降低單獨依賴地區判斷帶來的誤判。
出現誤攔截時,可配置白名單規則允許存取正常 IP。
第三方回調(如支付寶回調)被 WAF 誤攔截,如何處理?
分析回調請求的共性特徵(例如:URI 路徑包含 /pay/notify/、特定 User-Agent 標識、固定請求方式為 POST 等),然後在自訂規則中配置白名單允許存取規則:當請求同時滿足上述特徵時,跳過全部規則動作。
若無法確定完整特徵,可先針對攻擊特徵配置攔截規則,再逐步測實驗證回調是否正常通過。
相關文檔
規則相關的功能,在生效優先順序、可重新進入性、生效顆粒度上存在差異,詳細情況請查看規則相關功能的特性說明。