全部產品
Search
文件中心

Web Application Firewall:CDN+WAF聯合部署最佳實務

更新時間:Jun 06, 2026

本方案旨在通過Web Application Firewall(Web Application Firewall,簡稱WAF)為已接入內容分發網路(CDN)的網域名稱提供安全防護。通過在CDN回源鏈路上部署WAF,實現對HTTP/HTTPS流量的即時檢測與清洗,確保僅正常業務流量到達來源站點,有效抵禦Web攻擊。

適用範圍

  • 適用架構:本文適用於“CDN+ECS”的動靜混合架構,旨在確保靜態資源繼續由CDN加速的同時,由WAF專註於保護動態資源。若業務採用“CDN+OSS”純靜態託管架構,因OSS僅儲存靜態檔案且不存在應用程式層攻擊風險,接入WAF提供的防護有限,反而會增加回源鏈路與訪問延遲,故不建議接入。

  • 操作前提:目標網域名稱已接入阿里雲 CDN、DCDN 或其他廠商的 CDN 服務。

  • 操作說明:本文以阿里雲 CDN 為例闡述操作步驟,其邏輯同樣適用於 DCDN 或其他廠商的 CDN 服務,操作時請參照執行。

  • 業務影響:建議在業務低峰期執行本文操作,以最小化對業務的影響。

選擇合適的接入方式

WAF支援與其他雲產品協同部署以構建縱深防禦體系。在未接入WAF的架構中,使用者請求經DNS解析至CDN節點後直接回源,導致攻擊流量與正常業務流量直達來源站點伺服器。

WAF提供CNAME接入與雲產品接入兩種模式,具體對比如下。請結合業務架構特性,選擇適配的接入方案。

對比項

雲產品接入

CNAME接入

方案優勢

無需調整CDN回源配置,對業務影響較小,適用於快速接入情境。

適用情境廣泛,功能限制較少,支援跨帳號及跨雲部署。

接入對象

阿里雲雲產品執行個體。

網域名稱。

使用限制

  • 帳號限制:未配置多帳號統一管理時僅限接入本帳號的雲產品執行個體。

  • 地區限制:部分地區的雲產品執行個體不支援接入。

  • 協議限制:不支援接入IPv6類型的ECS、CLB、NLB執行個體。

  • 產品限制:不支援接入OSS。

配置稍複雜,需配置CDN回源、擷取真實用戶端IP等。

如需瞭解更多的接入方式對比與原理介紹,請參見接入概述

操作步驟

  1. 開通WAF(僅限WAF未開通時):若尚未開通WAF服務,請訪問Web Application Firewall3.0(隨用隨付)購買頁,初次使用建議選擇付費模式按量付费。具體購買流程,請參見開通WAF 3.0隨用隨付執行個體

  2. 前往WAF控制台:登入Web Application Firewall控制台,在頂部功能表列,選擇WAF執行個體的資源群組和地區(中國內地非中國內地),然後在左側導覽列,單擊接入管理

  3. 接入資產:從CNAME接入或雲產品接入中選擇一種方式完成資產接入。

    說明

    以下操作需參考CDN已配置的資訊。為確保配置準確,請先前往CDN控制台確認網域名稱、回源等相關配置後再繼續操作。

    CNAME接入

    1. CNAME接入頁簽,單擊接入。在配置監聽頁面,需要關注以下配置。

      配置項

      說明

      網域名稱

      填寫已接入CDN的網域名稱,僅支援填寫一個需防護的網域名稱,包括精確網域名稱(如www.aliyundoc.com)或萬用字元網域名稱(如*.aliyundoc.com)。

      協議類型與連接埠

      請根據CDN已配置的回源協議與回源連接埠進行選擇:

      • 協議選擇:需與CDN回源協議保持一致。

      • 連接埠選擇:需與CDN回源連接埠保持一致。

      預設情況下,當CDN回源連接埠配置為443時,使用HTTPS協議回源;其餘連接埠則使用HTTP協議回源。

      若使用HTTPS協議,需上傳與網域名稱匹配的認證檔案。若該認證此前已上傳至本帳號的數位憑證管理服務,可直接選擇已有認證進行配置。

      WAF前是否有七層代理(高防/CDN等)

      由於業務前置了CDN,必須在此處選擇。若配置錯誤,WAF將無法擷取真實用戶端IP,導致報表資料將所有請求來源顯示為CDN節點。

      • 客戶端IP判定方式選擇【推薦】取指定Header欄位中的第一個IP作為客戶端源IP,避免XFF偽造

      • 指定Header欄位填寫 ali-cdn-real-ip。這是阿里雲CDN回源請求中預設攜帶的、用於儲存真實用戶端IP的HTTP要求標頭。

      說明

      阿里雲CDN回源請求中用於儲存真實用戶端IP的欄位為 ali-cdn-real-ip

      若使用其他CDN產品,請查閱其官方文檔以確認對應的欄位名稱。此外,也可以通過配置CDN增加自訂出站要求標頭,來使用自訂的回源欄位。

    2. 單擊下一步,進入配置轉寄頁面,填寫伺服器位址後,單擊提交

      此處的伺服器位址應與CDN控制台填寫的來源站點地址一致。

    3. 接入完成頁,單擊複製CNAME

    4. 前往CDN控制台。單擊域名管理,定位至接入WAF的網域名稱,單擊操作列的管理。在源站信息地區,單擊操作列的編輯,將源站信息修改為上一步複製的CNAME地址。此操作將CDN回源路徑指向WAF。

    重要

    當存在以下情境時,還需執行相應的額外配置:

    • CDN回源HOST配置:若已配置預設回源HOST,需同步進行修改,將CDN回源路徑指向WAF。

    • 靜態檔案繞過WAF:為減少效能損耗,若需使用戶端對靜態檔案的請求繞過WAF,需配置CDN條件來源站點或將相關資源加入WAF白名單

    • 來源站點記錄真實用戶端IP:若需在來源站點伺服器(如Nginx的 access.log)記錄真實用戶端IP,需配置來源站點以提取真實IP欄位。詳細資料,請參見擷取用戶端真實 IP

    • CNAME接入進階功能:WAF的CNAME接入方式支援HTTPS、IPv6、回源負載平衡及高可用等進階功能。如需自訂相關配置,請參見通過CNAME接入為網站開啟WAF防護

    雲產品接入

    1. 雲產品接入頁簽,選擇需接入的雲產品類型,以ECS執行個體為例,單擊云服务器 ECS,然後定位至目標執行個體,單擊其操作列的立即接入

      說明

      若接入其他雲產品,請參照以下配置項,並依據對應的雲產品接入文檔完成配置。

    2. 在彈出的立即接入頁面,單擊操作列的添加連接埠,根據CDN已配置的回源協議與回源連接埠進行選擇:

      • 協議選擇:需與CDN回源協議保持一致。

      • 連接埠選擇:需與CDN回源連接埠保持一致。

      預設情況下,當CDN回源連接埠配置為443時,使用HTTPS協議回源;其餘連接埠則使用HTTP協議回源。

      若使用HTTPS協議,需上傳與網域名稱匹配的認證檔案。若該認證此前已上傳至本帳號的數位憑證管理服務,可直接選擇已有認證進行配置。配置完成後單擊确定

    3. 返回立即接入頁面,由於業務前置了CDN,必須在WAF前是否有七層代理(高防/CDN等)地區,選擇。若配置錯誤,WAF將無法擷取真實用戶端IP,導致報表資料將所有請求來源顯示為CDN節點。

      • 客戶端IP判定方式選擇【推薦】取指定Header欄位中的第一個IP作為客戶端源IP,避免XFF偽造

      • 指定Header欄位填寫 ali-cdn-real-ip。這是阿里雲CDN回源請求中預設攜帶的、用於儲存真實用戶端IP的HTTP要求標頭。

      說明

      阿里雲CDN回源請求中用於儲存真實用戶端IP的欄位為 ali-cdn-real-ip

      若使用其他CDN產品,請查閱其官方文檔以確認對應的欄位名稱。此外,也可以通過配置CDN增加自訂出站要求標頭,來使用自訂的回源欄位。

    4. 單擊確定完成接入。

      說明

      為減少效能損耗,若需使用戶端對靜態檔案的請求繞過WAF,還需配置CDN條件來源站點或將相關資源加入WAF白名單

  4. 驗證測試:在瀏覽器輸入接入的網站網域名稱,測試CDN與WAF接入是否成功。

    1. 在網域名稱後輸入Web攻擊代碼(例如<被防護網域名稱>/alert(xss)alert(xss)為用作測試的跨站指令碼攻擊代碼),如果返回405攔截提示頁面,表示攻擊被攔截,WAF防護成功。

    2. F12開啟瀏覽器開發人員工具,重新整理頁面後切換至Network頁簽。單擊目標靜態資源,在Headers頁簽中定位至X-Cache欄位,若顯示hit而非miss,即表示命中緩衝,CDN加速生效。image

  5. 配置WAF自訂防護規則:WAF為接入的對象預設啟用一系列防護規則,適用於日常防護情境,可以在防護配置 > 防護對象頁面查看。當預設規則無法滿足業務需求時(例如需將具備特定特徵的請求加入白名單予以允許存取),可建立或修改防護規則。更多資訊,請參見防護配置概述

常見問題

CNAME接入後,WAF控制台顯示“DNS解析未知,網域名稱啟用了代理”怎麼辦?

使用CNAME接入方式時,控制台出現此提示屬於正常現象。這是因為網域名稱的DNS解析直接指向了CDN,導致WAF無法直接擷取解析狀態,無需關注此提示。

如需確認接入是否成功,請參照前文提到的驗證測試步驟進行實際測試即可。

接入WAF完成後,是否需要重新整理CDN緩衝?

通常無需重新整理CDN緩衝。但在特定配置變更下,需手動執行重新整理操作。具體說明如下:

  1. 無需重新整理的情況

    僅完成WAF接入配置,未對來源站點內容進行任何變更。由於來源站點靜態資源未發生改變,CDN節點現有緩衝依然有效。

  2. 需要重新整理的情況

    存在以下任一情況時,需手動重新整理CDN緩衝以確保配置生效:

    • 修改了來源站點的靜態資源檔案。

    • 調整了與緩衝策略相關的HTTP回應標頭。

    • 啟用了WAF的Bot管理功能,並配置了自動整合Web SDK。

接入完成後訪問網站提示重新導向的次數過多怎麼辦?

通常是因為來源站點伺服器配置了 HTTP 強制跳轉 HTTPS 的規則,導致流量在 WAF/CDN 與來源站點之間形成了死迴圈。

需要在來源站點伺服器的前一跳裝置上,將回源協議配置為 HTTPS。根據採用的接入方式,具體配置位置如下:

  • CNAME 接入:前一跳裝置為 WAF。

  • 雲產品接入:前一跳裝置為 CDN。

更多資訊,請參見重新導向次數過多的解決方案

ESA控制台提供的WAF防護功能與本文的WAF有什麼區別?

  • 計費方式區別:ESA的WAF防護功能已深度整合,其產生的費用統一由ESA產品進行計費;而本文介紹的WAF為獨立雲產品,需單獨開通並按其自身的計費方式進行結算。

  • 功能區別:ESA內建的WAF功能主要適配邊緣安全加速情境,滿足常見的網站防護需求;而本文介紹的WAF產品功能更為全面,不僅涵蓋ESA WAF的所有能力,還提供覆蓋全業務情境的防護規則。

CDN引入WAF後是否需要修改網域名稱DNS解析?

不需要修改網域名稱DNS解析。無論採用雲產品接入還是CNAME接入方式,用戶端請求均先到達CDN節點,因此無需更改網域名稱的DNS解析記錄。但需注意以下配置調整:

若採用 CNAME接入方式,需將CDN的回源地址修改為WAF提供的CNAME地址,並在WAF配置擷取用戶端真實IP。具體操作請參見上文操作步驟。