代碼片段功能
生成隨機數字(N)、大寫字母(U)、小寫字母(L)、混合編碼(C)字符串,替換請求參數中的佔位符。
攻擊原理
- 緩存鍵差異化:每次請求參數不同(如
search?q=random123),CDN/WAF/應用層緩存視為不同請求,無法命中緩存。
- 源站全量處理:請求穿透至應用服務器/數據庫,執行完整業務邏輯(搜索、SQL 查詢、模板渲染),消耗 CPU、IO、連接池。
- 繞過基於參數的限流:若限流鍵包含請求參數,隨機參數導致限流失效。
防禦對策
- 參數標準化:限流/緩存鍵僅基於核心業務參數(如用戶 ID、介面 ID),忽略隨機噪聲參數。
- 請求指紋識別:分析 Header、IP 信譽、行為模式(如請求頻率、User-Agent 一致性)識別攻擊流量。
- 驗證碼/設備指紋:關鍵介面強制驗證碼,提高攻擊成本。
- 緩存策略優化:對高頻只讀介面啟用邊緣緩存,忽略查詢字符串差異(
Vary 標頭控制)。