如何防止CDN防護被繞過
- 2020 年 3 月 13 日
- 筆記
當發現目標站點存在CDN防護的時候,我們會嘗試通過查找站點的真實IP,從而繞過CDN防護。
我們來看一個比較常見的基於公有雲的高可用架構,即:
域名-->CDN,CDN-->WAF,WAF-->SLB,SLB-->ECS。

我們重點來關注一下CDN-->WAF-->SLB-->ECS這幾層服務之間的關係吧。
假設,攻擊者知道SLB的真實IP地址,就可以直接訪問SLB的ip地址,從而輕易繞過CDN+WAF的安全防護。
如何防止CDN被繞過呢?
這裡分享一個CDN防護技巧,通過中間件配置只允許域名訪問,禁止ip訪問。
這樣處理的話,所有直接訪問站點真實IP的請求將會被拒絕,任何用戶只能通過域名訪問站點,通過預先設定的網路鏈路,從DNS→CDN→waf防護→源站,所有的域名訪問請求都必須經過WAF檢測。
Nginx參考配置:
#添加一個server,在原server里綁定域名server { listen 80 default; server_name _; return 403; }server { listen 80; server_name www.demo.com; .........Apache參考配置:
- =#在httpd.conf最後面加上 <VirtualHost 此處填寫IP> ServerName 此處填寫IP <Location /> Order Allow,Deny Deny from all </Location></VirtualHost> <VirtualHost 此處填寫IP> DocumentRoot /var/www/html ServerName 此處填寫域名</VirtualHost>
我們再來思考一個問題?
如果攻擊者有了真實IP地址,修改本地hosts文件,強行將域名與IP解析,從而本地訪問請求是無需經過DNS解析,還是可以繞過CDN防護。
這個策略,本質上是一個減緩措施,增加了尋找真實IP的難度。

