Referer防盗链,是基于HTTP请求头中Referer字段(例如,Referer黑白名单)来设置访问控制规则,实现对访客的身份识别和过滤,防止网站资源被非法盗用。配置Referer黑白名单后,DCDN会根据名单识别请求身份,允许或拒绝访问请求。允许访问请求,DCDN会返回资源链接;拒绝访问请求,DCDN会返回403响应码。
背景信息
Referer是HTTP请求头的一部分,携带了HTTP请求的来源地址信息(协议+域名+查询参数),可用于识别请求来源。
Referer防盗链是一种服务器端设置的访问控制机制,用于防止未经授权的网站盗用服务器资源。具体来说,当一个用户从某个网页点击链接访问另一个网页时,浏览器会自动在HTTP请求头中添加一个Referer字段,这个字段记录了用户是从哪个网页跳转过来的。
阿里云DCDN的Referer防盗链功能默认不启用,表示任何网站均可访问您的资源。
将某个域名添加到Referer黑名单或白名单后,DCDN会默认将该域名的泛域名加入对应的规则名单。例如,如果您填写
aliyundoc.com
,则最终配置生效的是*.aliyundoc.com
,即所有子级域名都会生效。当域名在进行Range请求时,由于Range第二次请求的时候会被浏览器加上Referer头,因此需要对该域名Referer防盗链设置为白名单。
使用场景
Referer防盗链主要用于保护网站的资源不被其他网站直接引用或盗用,常见的使用场景包括:
版权保护:某些网站发布的内容受版权保护,使用Referer防盗链可以限制只有特定授权网站才能访问这些内容,保护版权利益。
防止热链盗用:用户可以配置Referer防盗链,确保自己的资源只能在特定来源网站上使用,防止其他网站直接引用自己的资源,减少热链盗用问题。
提高网站安全性:通过Referer防盗链,用户可以设置只允许特定来源网站访问自己的网站资源,防止恶意盗链行为、恶意访问或盗取敏感信息。
控制流量来源:用户可以使用Referer防盗链来限制只有特定来源网站的流量才能访问自己的网站,有效控制流量来源,提高网站的稳定性和安全性。
综上所述,您可以根据自己的需求,在不同的使用场景中使用DCDN的Referer防盗链功能,保护网站资源、提高安全性和控制流量来源。
工作原理
服务器端检查每个请求的Referer字段,如果Referer字段不是来自自己信任的网站,就拒绝提供服务。这样可以防止其他网站直接链接到自己的资源,从而节省带宽和服务器资源。如果配置了Referer防盗链,DCDN将根据请求的Referer与配置的Referer规则来判断是否允许此请求:
如果浏览器携带的Referer与黑名单Referer匹配,或与白名单Referer不匹配,则DCDN将拒绝该请求的访问。
如果浏览器携带的Referer与白名单Referer匹配,则DCDN将允许该请求的访问。
注意事项
配置Referer防盗链后,黑名单中的请求仍可访问到DCDN节点,但会被DCDN节点拒绝并返回403状态码,DCDN日志中仍会记录客户端的请求记录。
由于Referer防盗链功能TTP请求头中Referer字段(例如,Referer黑白名单)来设置访问控制规则,因此在黑名单中的请求被DCDN节点拦截的同时,会产生少量的流量费用,如果客户端使用HTTPS协议访问,还会产生HTTPS请求数费用(因为拦截黑名单中请求的时候,也同时消耗了DCDN节点的处理资源)。
操作步骤
登录DCDN控制台。
在左侧导航栏,单击域名管理。
在域名管理页面,单击目标域名对应的配置。
在指定域名的左侧导航栏,单击访问控制。
在Referer防盗链页签,打开Referer防盗链开关。
根据业务需求,设置Referer黑名单或白名单。
参数
说明
Referer类型
黑名单
黑名单内的域名均无法访问当前的资源。
白名单
只有白名单内的域名能访问当前资源,白名单以外的域名均无法访问当前的资源。
说明黑名单和白名单互斥,同一时间您只能选择其中一种方式。
规则
支持添加多个Referer名单,使用回车符进行分隔,每个Referer名单前不能加空格符。
支持使用星号(*)作为通配符。例如,配置
*.developer.aliyundoc.com
,可以匹配到image.developer.aliyundoc.com
或video.developer.aliyundoc.com
等。
说明Referer防盗链规则的总长度最长不超过60 KB。
允许通过浏览器地址栏直接访问资源URL
系统默认未勾选。当勾选该选项时,无论配置的是Referer黑名单还是白名单,系统不拦截空Referer请求,DCDN节点都将允许用户访问当前的资源。空Referer包括两种情况:
用户请求中不携带Referer头。
用户请求中携带了Referer头,但值为空。
单击确定,完成配置。
Referer匹配逻辑
通过以下名单配置为例,阐述Referer头部的匹配逻辑。如果一个请求未匹配白名单或者匹配了黑名单,DCDN会拒绝请求并返回403状态码。
名单配置 | 用户请求中的Referer值 | 匹配结果 | 匹配逻辑说明 |
| http://www.example.com/img.jpg | 是 | Referer头部中的域名匹配名单。 |
http://www.example.com:80/img.jpg | 是 | ||
www.example.com | 否 | 请求中的Referer没有带上HTTP或HTTPS协议头部。 | |
http://aaa.example.com | 是 | Referer头部中的多级域名匹配名单中的泛域名条目。泛域名包含多级域名。 | |
http://aaa.bbb.example.com | 是 | ||
http://example.com | 否 | Referer头部中的二级域名不匹配名单中的泛域名条目。原因是泛域名不包含二级域名本身。 | |
http://www.example.net | 不匹配任何规则 | 既未匹配白名单,也未匹配黑名单,按照默认策略处理,允许访问。 |