Referer黑/白名單基於HTTP要求標頭中的Referer欄位,通過設定黑名單/白名單來控制訪問,防止資源被非法盜用。配置後,CDN會根據Referer資訊,允許或拒絕訪問請求。
-
阿里雲CDN的Referer黑/白名單功能預設不啟用,即任何網站均可訪問您的資源。
-
Referer黑/白名單只是防止CDN流量盜刷的一種方式,更多防護方式參見防範流量盜刷最佳實務。
-
將網域名稱添加到Referer黑名單或白名單後,CDN會將該網域名稱的泛網域名稱加入規則名單。例如,填寫
aliyundoc.com,最終生效的是*.aliyundoc.com,即所有子網域名稱都會生效。
Referer圖解
Referer是使用者從一個網站跳轉到另一個網站時,記錄的第一個網站的URL資訊,即表示當前頁面是通過哪個頁面跳轉過來的。具體由協議、網域名稱、路徑、查詢參數組成,如下圖所示。
-
Referer本質上就是一個URL,即請求連結。
-
阿里雲支援僅網域名稱形式的Referer配置,通過勾選忽略Scheme實現。
使用情境
Referer黑/白名單主要用於保護網站的資源不被其他網站直接引用或盜用,常見的使用情境包括:
-
著作權保護:某些網站的內容受著作權保護,Referer黑/白名單可以限制只有授權網站訪問這些內容,保護著作權。
-
防止熱鏈盜用:Referer黑/白名單確保資源只能在特定網站上使用,防止其他網站直接引用,減少熱鏈盜用。
-
提高網站安全性:Referer黑/白名單只允許特定網站訪問資源,防止惡意盜鏈、惡意訪問或盜取敏感資訊。
-
控制流程量來源:Referer黑/白名單限制特定網站的流量訪問,有效控制流程量來源,提高網站穩定性和安全性。
綜上所述,您可以根據需求,在不同情境中使用Referer黑/白名單功能,保護資源、提高安全性和控制流程量。
工作原理
伺服器端檢查每個請求的Referer欄位,如果Referer欄位不是來自白名單配置,就拒絕提供服務,從而節省頻寬和伺服器資源。CDN的Referer請求規則如下:
-
如果瀏覽器攜帶的Referer與黑名單Referer匹配,或與白名單Referer不匹配,則CDN將拒絕該請求的訪問。
-
如果瀏覽器攜帶的Referer與白名單Referer匹配,則CDN將允許該請求的訪問。
注意事項
-
配置Referer黑/白名單後,黑名單請求仍可訪問CDN節點,但會被拒絕並返回403狀態代碼,CDN日誌中也會記錄該請求。
-
Referer黑/白名單功能基於HTTP要求標頭中的Referer欄位設定存取控制規則。黑名單請求被攔截時會產生少量流量費用,使用HTTPS協議訪問還會產生HTTPS請求數費用。
-
由於CDN流量盜刷來自公網訪問,所以Referer規則僅限於公網網域名稱匹配。
操作步驟
登入CDN控制台。
在左側導覽列,單擊域名管理。
在域名管理頁面,找到目標網域名稱,單擊操作列的管理。
在指定網域名稱的左側導覽列,單擊访问控制。
-
在Referer黑/白名單頁簽,單擊修改配置。
-
根據業務需求,填寫Referer配置項。
-
單擊確定,完成配置。
Referer配置項說明
|
參數 |
說明 |
|
|
Refer类型 |
說明
黑名單和白名單互斥,只能選擇一種。 |
|
|
规则 |
說明
|
|
|
重新導向URL |
請求被攔截後返回302+Location頭,該項為Location頭的值,必須以 |
|
|
高級配置 |
允许通过浏览器地址栏直接访问资源URL |
預設未勾選。勾選後,無論配置的是Referer黑名單還是白名單,系統不攔截空Referer請求,CDN節點允許使用者訪問當前資源。 空Referer包括:
|
|
精確匹配 |
預設未勾選。勾選後,不再支援萬用字元(*)預設。若未使用萬用字元, |
|
|
忽略Scheme |
|
|
|
規則條件 |
規則條件能夠對使用者請求中攜帶的各種參數資訊進行識別,以此來決定某個配置是否對該請求生效。 重要
引用規則條件時,按所關聯規則條件的優先順序匹配,而非按功能自身的配置順序匹配。
|
|
Referer驗證
這裡使用curl命令測試,-e後面接referer值,-I後接CDN加速網域名稱。該命令結果返迴響應頭資訊。這裡以白名單為例進行驗證。