Referer防盗链基于HTTP请求头中的Referer字段,通过设置Referer黑白名单来控制访问,防止资源被非法盗用。配置后,CDN会根据Referer信息,允许或拒绝访问请求。
阿里云CDN的Referer防盗链功能默认不启用,即任何网站均可访问您的资源。
Referer防盗链只是防止CDN流量盗刷的一种方式,更多防护方式参见防范流量盗刷最佳实践。
将域名添加到Referer黑名单或白名单后,CDN会将该域名的泛域名加入规则名单。例如,填写
aliyundoc.com
,最终生效的是*.aliyundoc.com
,即所有子域名都会生效。
Referer图解
Referer是HTTP请求头的一部分,携带了请求源地址信息,可用于识别请求来源。具体由协议、域名、路径、查询参数组成,如下图所示。
其中协议和域名是必须包含部分,路径和查询参数是可选部分。
阿里云支持仅域名形式的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配置项说明
参数 | 说明 | |
Referer类型 |
说明 黑名单和白名单互斥,只能选择一种。 | |
规则 |
说明
| |
重定向URL | 请求被拦截后返回302+Location头,该项为Location头的值,必须以 | |
高级配置 | 允许通过浏览器地址栏直接访问资源URL | 默认未勾选。勾选后,无论配置的是Referer黑名单还是白名单,系统不拦截空Referer请求,CDN节点允许用户访问当前资源。 空Referer包括:
|
精确匹配 | 默认未勾选。勾选后,不再支持通配符(*)缺省。若未使用通配符, | |
忽略scheme |
| |
规则条件 | 规则条件能够对用户请求中携带的各种参数信息进行识别,以此来决定某个配置是否对该请求生效。
|
Referer验证
这里使用curl命令测试,-e
后面接referer值,-I
后接CDN加速域名。该命令结果返回响应头信息。这里以白名单为例进行验证。