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