更新时间:2024-07-17 17:26:23
当客户端向 Web 服务器发送请求时,通常会携带一个 Referer 头,指示 Web 服务器请求来源的页面。因此,可以基于这个头进行访问控制。当 CDN 边缘服务器接收到客户端请求时,它会检查 HTTP 请求头中的 Referer 字段中的信息,然后根据特定规则允许或拒绝用户请求。这适用于仅允许从特定页面访问内容的场景,例如仅允许用户通过点击特定页面的链接来访问资源时。
生效范围
访问的生效范围,即配置针对哪些请求进行Referer防盗链的访问控制。这里我们提供如下生效范围供您选择。
配置项 | 说明 |
---|---|
所有请求 | 即该访问控制规则,将对所有类型的请求都生效。 |
仅首页 | 仅针对域名根目录格式的请求生效,比如http://domain/ 或https://domain/ 。 |
指定文件类型 | 仅对特定类型的文件生效,您可以在左侧选择对应的文件类型,也可以自定义文件类型。对于自定义文件类型,多个文件类型之前请通过分号; 分割,例如:jpg;png 。 |
指定URI | 访问控制仅对指定URI的内容请求生效,这里我们提供两种URI匹配模式,精准匹配和忽略参数匹配。精准匹配:指定完整的URI,包括参数。比如,path/index.html?abc=123 。忽略参数匹配:仅填入问号前的路径,无需指定参数。比如,path/index.html 。 |
指定目录 | 仅对部分目录下的请求进行访问控制,比如,当配置为/file/abc/ 表示对http://domain/file/abc/* 下所有的内容都会生效。注意:目录必须以/ 作为开头和结尾,只能包含由字母、数字及部分特殊符号(包含下划线、减号、百分号、点)任意组合,当有多个目录时,目录间需要进行换行分隔。 |
URL正则匹配 | 通过正则表达式来控制生效范围。比如*.jpg$ 代表访问控制将对所有的以jpg 结尾的URL生效。 |
规则类型
您可以设置相应的Referer黑名单和白名单。
配置项 | 说明 |
---|---|
Referer黑名单 | 支持两种配置形式:referer黑名单(域名):请求的referer中含有该域名时,则访问被CDN拒绝。例如,www.test.com 。注意不需要加http:// 或者 https:// 。 referer黑名单(URL):请求的referer中含有该URL时,则访问被CDN拒绝。例如, http://www.test.com/index.html . |
Referer白名单 | 支持两种配置形式:referer白名单(域名):只有请求的referer中含有该域名时,CDN才允许访问。例如,www.test.com 。注意不需要加http:// 或者 https:// 。referer白名单(URL):请求的referer中含有该URL时,CDN才允许访问。例如,http://www.test.com/index.html 。 |
注意
Referer黑名单和白名单支持同时添加多个域名或者URL,多个域名和URL之前需要换行进行分隔。
最多只支持添加一条Referer白名单配置。当您有多个白名单规则时,请添加在同一条白名单配置中。
该配置不支持泛域名。
控制动作
当Referer不符合设定的规则,用户的请求被CDN拒绝时,直接返回错误码还是跳转到其他URL。其中:
允许空Referer访问
通常情况下,当用户在浏览器地址栏中直接输入URL访问网站时,由于没有跳转来源页面,此时Referer值将被设置为空。允许空Referer访问则表示允许用户通过浏览器地址栏直接输入URL的方式来访问您的内容。
优先级
当您配置了多条访问控制规则,CDN将按照优先级大小先后执行,数字大的规则将被优先执行判断。
完成上述配置后,请点击确认,然后选择下一步提交您的配置。为了避免配置影响您的生产环境,我们推荐您先预部署,把配置生效到测试环境中来验证您的配置是否正确。当配置确定无误后,单击直接部署将配置正式生效到线上环境,通常约3-5分钟后,配置将正式生效到线上环境。关于预部署测试的更多细节,请参考教程通过预部署来验证配置是否生效。
示例一:配置Referer黑名单
针对域名下的所有请求,如果请求的Referer中含有www.cdnetworks.com
或者dash.cdnetworks.com
,则访问被CDN拒绝。配置如下图所示:
示例二:配置Referer白名单
针对域名下的所有请求,只有请求的Referer中含有www.cdnetworks.com或者dash.cdnetworks.com,访问才能成功。配置如下图所示:
请您不要同时配置Referer黑白名单,因为Referer会分别被黑名单和白名单依次校验,这可能会导致所有的CDN访问均被拒绝,从而会对您的线上业务带来影响。
例如,当按照下图的方式同时配置Referer黑名单和白名单,会导致所有访问均被CDN拒绝。
为什么所有访问都会被拒绝?
www.test.com
,因为其匹配黑名单规则,访问会被CDN拒绝。www.test.com
,虽然未因为黑名单规则被CDN拒绝,但因为这样也未匹配白名单规则,因此请求仍将被CDN拒绝(因为白名单规定只有请求的Referer中含有 www.test.com
才允许访问)。如果您确实需要同时配置黑白名单,请联系我们的技术支持来协助您确认。