本文档介绍如何在CDN加速服务中配置 Referer 黑白名单。
Referer 是用户请求中的一个请求头,表示请求是来自哪个站点页面的。Referer 头部指示了源页面的 URL,包含协议,域名,端口,路径与查询字符串。端口是可选的。
Referer 头部的作用之一是防盗链。默认情况下,您在 Referer 名单中配置的条目仅仅是域名和 IP 地址。在收到请求时,CDN加速服务尝试将这些条目与 Referer 头部中的域名或 IP 地址进行匹配。如果您希望CDN加速服务尝试对 Referer 头部中的路径或查询字符串进行匹配,您需要在名单中指定正则表达式。参见 配置说明 中 规则内容 配置的描述。
"空 Referer" 的定义是 Referer 头部没有值或者请求中不包含 Referer 头部。
CDN加速服务提供的一系列访问控制功能有不同的优先级。在CDN加速服务处理用户请求时,这些功能按优先级对请求生效。参见 访问控制功能的优先级。
您已经添加域名到CDN加速服务。相关操作,请参见添加域名。
登录多云CDN控制台。
配置 | 说明 |
---|---|
类型 | 表示名单的类型。该配置有以下选项:
|
规则内容 | 表示名单中条目的类型。该配置有以下选项:
|
常规名单(输入框) | 表示一个或者多个名单条目。如果您在 规则内容 处勾选了 常规名单,该输入框会出现。
|
忽略大小写 | 表示CDN加速服务在尝试将名单中的条目与请求中的 Referer 头部匹配时,匹配过程是否是大小写敏感的。勾选该选项示匹配过程是大小写不敏感的。 |
忽略 scheme 校验 | 表示在尝试使用名单中条目匹配 Referer 头部前,CDN加速服务是否校验 Referer 头部的合法性。
|
我们通过以下名单配置为例,阐述 Referer 头部的匹配逻辑。如果一个请求未匹配白名单或者匹配了黑名单,CDN加速服务会拒绝请求并返回 403 响应状态码。
名单配置 | 用户请求中的 Referer 头部 | 匹配结果 | 匹配逻辑说明 |
---|---|---|---|
| http://www.example.com/test.js | 是 | Referer 头部中的域名匹配名单。 |
http://www.example.com:80/test.js | 是 | ||
www.example.com | 见匹配逻辑说明 |
| |
2001:0db8:3c4d:0015:0000:0000:1a2f:1a2b | |||
http://2001:0db8:3c4d:0015:0000:0000:1a2f:1a2b | 否 | Referer 头部不符合 HTTP 协议规范。规范要求当 host 是一个 IPv6 地址时,该地址必须包裹在 [] 中。 | |
http://[2001:0db8:3c4d:0015:0000:0000:1a2f:1a2b] | 是 | Referer 头部中的 IP 地址匹配名单。 | |
http://aaa.example.com | 是 | Referer 头部中的多级域名匹配名单中的泛域名条目。泛域名是包含多级域名的。 | |
http://ss.aaa.example.com | 是 | ||
http://example.com | 否 | Referer 头部中的二级域名不匹配名单中的泛域名条目。原因是泛域名不包含二级域名本身。 |