配置Referer防盗链
Referer防盗链,是基于HTTP请求头中Referer字段(例如,Referer黑白名单)来设置访问控制规则,实现对访客的身份识别和过滤,防止网站资源被非法盗用。本文介绍如何配置Referer防盗链。
背景信息
该功能默认不启用。
将某个域名添加到Referer黑名单或白名单后,CDN会默认将该域名的泛域名加入对应的规则名单。例如,如果您填写
aliyundoc.com
,则最终配置生效的是*.aliyundoc.com
,即所有子级域名都会生效。域名在进行Range请求时,由于Range第二次请求的时候会被浏览器加上Referer头,因此需要对该域名Referer防盗链设置为白名单。
Referer是HTTP请求头的一部分,携带了HTTP请求的来源地址信息(协议+域名+查询参数),可用于识别请求来源。
配置Referer黑白名单后,CDN会根据名单识别请求身份,允许或拒绝访问请求。允许访问请求,CDN会返回资源链接;拒绝访问请求,CDN会返回403响应码。
操作步骤
登录CDN控制台。
在左侧导航栏,单击域名管理。
在域名管理页面,单击目标域名对应的管理。
在指定域名的左侧导航栏,单击访问控制。
在Referer防盗链页签,单击修改配置。
根据业务需求,设置Referer黑名单或白名单。
参数
说明
Referer类型
黑名单
黑名单内的域名均无法访问当前的资源。
白名单
只有白名单内的域名能访问当前资源,白名单以外的域名均无法访问当前的资源。
说明黑名单和白名单互斥,同一时间您只能选择其中一种方式。
规则
支持添加多个Referer名单,使用回车符进行分隔。
支持使用星号(*)作为通配符。例如,配置
*.developer.aliyundoc.com
,可以匹配到image.developer.aliyundoc.com
或video.developer.aliyundoc.com
等。
说明Referer防盗链规则的总长度最长不超过60 KB。
重定向URL
白名单:
重定向URL,即用户请求中的referer信息未匹配上白名单列表,被拦截后不会再返回403,而是会返回302加Location头,该项为Location头的值,以 http:// 或者 https:// 开头,例如:
http://www.example.com
。黑名单:
重定向URL,即用户请求中的referer信息匹配上黑名单列表,被拦截后不会再返回403,而是会返回302加Location头,该项为Location头的值,以 http:// 或者 https:// 开头,例如:
http://www.example.com
。高级配置
允许通过浏览器地址栏直接访问资源URL
当勾选该选项时,无论配置的是Referer黑名单还是白名单,请求Referer字段为空或无Referer字段(例如浏览器请求),CDN节点都将允许用户访问当前的资源。
精确匹配
白名单:使用精确匹配模式,控制“白名单列表”项中填写的域名是否为精确匹配。
勾选精确匹配时:
支持精确匹配。
白名单列表填写
example.com
,匹配example.com
。白名单列表填写
a*b.example.com
,匹配a<任意字符>b.example.com
。不支持后缀匹配。
未勾选精确匹配时:
不支持精确匹配。
支持后缀匹配。
白名单列表填写
example.com
,匹配example.com
和<任意字符>.example.com
。白名单列表填写
a*b.example.com
,匹配a<任意字符>b.example.com
和<任意字符>.a<任意字符>b.example.com
。
黑名单:使用精确匹配模式,控制“黑名单列表”项中填写的域名是否为精确匹配。
勾选精确匹配时:
支持精确匹配。
黑名单列表填写
example.com
,匹配example.com
。黑名单列表填写
a*b.example.com
,匹配a<任意字符>b.example.com
。不支持后缀匹配。
未勾选精确匹配时:
不支持精确匹配。
支持后缀匹配。
黑名单列表填写
example.com
,匹配example.com
和<任意字符>.example.com
。黑名单列表填写
a*b.example.com
,匹配a<任意字符>b.example.com
和<任意字符>.a<任意字符>b.example.com
。
忽略scheme
无论配置的是Referer黑名单还是白名单:
勾选忽略scheme后,如果用户请求中的Referer没有带上HTTP或HTTPS协议头部,则依然当做有效Referer进行处理。例如Referer格式为
www.example.com
依然有效。未勾选忽略scheme时,如果用户请求中的Referer没有带上HTTP或HTTPS协议头部,则按照无效Referer进行处理。例如Referer格式为
www.example.com
时无效,只有Referer格式为https://www.*.com
或http://www.*.com
才有效。
规则条件
规则条件能够对用户请求中携带的各种参数信息进行识别,以此来决定某个配置是否对该请求生效。
不使用:不使用规则条件。
选择已配置的规则引擎,新增或修改规则引擎请参见规则引擎。
单击确定,完成配置。