WAF(Web 應(yīng)用防火墻)的自定義規(guī)則 匹配條件,是用于精準(zhǔn)識別目標(biāo)請求特征的核心維度。以下是常見匹配項(xiàng)的詳細(xì)解析:
1. 基礎(chǔ)網(wǎng)絡(luò) / 協(xié)議維度
- IP:
匹配客戶端源 IP 地址(如192.168.1.1
)。常用于封禁惡意 IP、允許白名單 IP 等場景。 - X-Forwarded-For(XFF):
代理環(huán)境中,記錄原始客戶端 IP(因代理會改寫源 IP,需通過 XFF 頭還原真實(shí) IP)。適合多云 / 代理架構(gòu)下的 IP 策略。 - Http-Method:
匹配 HTTP 請求方法(如GET
/POST
/PUT
/DELETE
)??蓴r截非法方法(如站點(diǎn)僅允許GET/POST
,則封禁PUT
)。
2. URI 相關(guān)維度
- URI:
匹配完整請求路徑 + 參數(shù)(如/login?username=test
),覆蓋 URI 的全部內(nèi)容。 - URI Path:
僅匹配路徑部分(如/login
),排除參數(shù),適合針對接口路徑的規(guī)則(如/admin
后臺路徑防護(hù))。 - Query String:
匹配完整查詢參數(shù)(如?username=test&pwd=123
),用于檢測參數(shù)整體異常(如長度、格式)。 - Query String Parameter:
匹配單個參數(shù)的名或值(如username
參數(shù)的值test
),精準(zhǔn)檢測參數(shù)注入(如 SQL 注入、XSS 的參數(shù)特征)。
3. HTTP 頭維度
- Host:
匹配請求的主機(jī)頭(如www.example.com
),防止 Host 頭偽造(如惡意解析到本站)。 - Referer:
匹配請求的來源頁面(如https://example.com/index
),用于防盜鏈(如圖片僅允許本站 Referer)。 - User-Agent(UA):
匹配客戶端標(biāo)識(如瀏覽器、爬蟲的 UA 字符串),可攔截異常 UA(如掃描器、惡意爬蟲的特征 UA)。 - Header:
匹配自定義 HTTP 頭(如Auth-Token
),靈活擴(kuò)展規(guī)則(如檢查自定義頭的存在、格式)。
4. 請求體維度
- Content-Type:
匹配請求體的內(nèi)容類型(如application/json
/multipart/form-data
),防止非法格式請求(如站點(diǎn)僅接受 JSON,封禁text/plain
)。 - Content-Length:
匹配請求體的長度(字節(jié)),攔截過大 / 過小的異常請求(如正常請求體應(yīng) <1MB,封禁> 100MB 的 POST)。
5. Cookie 維度
- Cookie:
匹配完整 Cookie 鍵值對(如session=abc123; user=test
),檢測 Cookie 內(nèi)容異常(如惡意注入的 Cookie 值)。 - Cookie Name:
僅匹配Cookie 的名稱(如session
),用于檢測非法 Cookie 名(如站點(diǎn)未定義的 Cookie)。
規(guī)則設(shè)計(jì)思路
這些條件可通過 “且 / 或” 邏輯組合,實(shí)現(xiàn)精準(zhǔn)攔截:
- 例 1:
IP=惡意IP 且 Http-Method=POST
→ 針對特定 IP 的 POST 攻擊。 - 例 2:
URI Path=/admin 且 User-Agent=惡意爬蟲UA
→ 攔截對管理后臺的爬蟲掃描。
通過靈活搭配,可覆蓋爬蟲、注入、非法訪問、協(xié)議違規(guī)等多種攻擊場景,提升 WAF 防護(hù)的精準(zhǔn)性。