Referer防盗链,是基于HTTP请求头中Referer字段(例如,Referer黑白名单)来设置访问控制规则,实现对访客的身份识别和过滤,防止网站资源被非法盗用。配置Referer黑白名单后,CDN会根据名单识别请求身份,允许或拒绝访问请求。允许访问请求,CDN会返回资源链接;拒绝访问请求,CDN会返回403响应码。本文为您介绍如何配置Referer防盗链。
视频点播中Referer防盗链功能默认不启用,表示任何网站均可访问您的资源。
将域名添加到Referer黑名单或白名单后,CDN会将该域名的泛域名加入规则名单。例如,填写
aliyundoc.com,最终生效的是*.aliyundoc.com,即所有子域名都会生效。当域名在进行Range请求时,由于Range第二次请求的时候会被浏览器加上Referer头,因此需要对该域名Referer防盗链设置为白名单。
启用视频点播的Referer防盗链功能后,如需在阿里云官方网站的视频点播控制台播放预览视频,则可以在Referer白名单配置中增加域名
vod.console.aliyun.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黑名单或白名单。
参数
说明
Referer类型
黑名单
携带黑名单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 | 不匹配任何规则 | 既未匹配白名单,也未匹配黑名单,按照默认策略处理,允许访问。 |