Referer防盜鏈,是基於HTTP要求標頭中Referer欄位(例如,Referer黑白名單)來設定存取控制規則,實現對訪客的身份識別和過濾,防止網站資源被非法盜用。配置Referer黑白名單後,CDN會根據名單識別請求身份,允許或拒絕訪問請求。允許訪問請求,CDN會返回資源連結;拒絕訪問請求,CDN會返回403響應碼。本文為您介紹如何配置Referer防盜鏈。
ApsaraVideo for VOD中Referer防盜鏈功能預設不啟用,表示任何網站均可訪問您的資源。
將網域名稱添加到Referer黑名單或白名單後,CDN會將該網域名稱的泛網域名稱加入規則名單。例如,填寫
aliyundoc.com,最終生效的是*.aliyundoc.com,即所有子網域名稱都會生效。當網域名稱在進行Range請求時,由於Range第二次請求的時候會被瀏覽器加上Referer頭,因此需要對該網域名稱Referer防盜鏈設定為白名單。
啟用ApsaraVideo for VOD的Referer防盜鏈功能後,如需在阿里雲官方網站的ApsaraVideo for VOD控制台播放預覽視頻,則可以在Referer白名單配置中增加網域名稱
vod.console.alibabacloud.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防盜鏈頁簽,單擊修改配置。
根據業務需求,設定Referer黑名单或白名单。
參數
說明
Refer类型
黑名单
攜帶黑名單Referer的請求均無法訪問當前資源。
白名单
只有攜帶白名單Referer的請求才能訪問當前資源。
說明黑名單和白名單互斥,只能選擇一種。
规则
支援添加多個Referer名單,使用斷行符號符分隔。
支援星號(*)作為萬用字元,匹配所有子網域名稱。如
*.example.com匹配example.com的所有子網域名稱。支援萬用字元(*)預設,匹配自身及其所有子網域名稱。如
example.com匹配example.com和*.example.com結果集。
說明Referer黑/白名單規則的總長度最長不超過60 KB。
配置規則不需要填寫協議頭。
重新導向URL
請求被攔截後返回302+Location頭,該項為Location頭的值,必須以
http://或者https://開頭,例如:http://www.example.com。高级配置
允许通过浏览器地址栏直接访问资源URL
預設未勾選。勾選後,無論配置的是Referer黑名單還是白名單,系統不攔截空Referer請求,CDN節點允許使用者訪問當前資源。
使用者請求中不攜帶Referer頭。
Referer頭值為空白。
精確匹配
預設未勾選。勾選後,不再支援萬用字元(*)預設。若未使用萬用字元,
example.com僅匹配example.com。忽略scheme
未勾選忽略scheme時,要求標頭中Referer必須攜帶HTTP或HTTPS協議頭。
勾選忽略scheme後,要求標頭中Referer可不攜帶HTTP或HTTPS協議頭。
單擊確定,完成配置。
Referer匹配邏輯
通過以下名單配置為例,闡述Referer頭部的匹配邏輯。如果一個請求未匹配白名單或者匹配了黑名單,CDN會拒絕請求並返回403狀態代碼。
名單配置 | 使用者請求中的Referer值 | 匹配結果 | 匹配邏輯說明 |
| http://www.example.com/img.jpg | 是 | Referer頭部中的網域名稱匹配名單。 |
http://www.example.com:80/img.jpg | 是 | ||
www.example.com | 見匹配邏輯說明 |
| |
http://aaa.example.com | 是 | 無論是否勾選精確匹配,結果均為匹配。 | |
http://aaa.bbb.example.com | 見匹配邏輯說明 |
| |
http://example.com | 否 | Referer頭部中的次層網域不匹配名單中的泛網域名稱條目。原因是泛網域名稱不包含次層網域本身。 | |
http://www.example.net | 不匹配任何規則 | 既未匹配白名單,也未匹配黑名單,按照預設策略處理,允許訪問。 |