本文档介绍如何在火山引擎内容分发网络(CDN)中配置 Referer 黑白名单。
Referer 是用户请求中的一个请求头,表示请求是来自哪个站点页面的。Referer 头部是来源页面的 URL,包含协议,hostname,端口,路径与查询字符串。
Referer 头部的作用之一是防盗链。
"空 Referer" 的定义是 Referer 头部为空("")或者请求中不包含 Referer 头部。
CDN 提供的一系列访问控制功能有不同的优先级。在 CDN 处理用户请求时,这些功能按优先级对请求生效。参见 访问控制功能的优先级。
登录 火山引擎内容分发网络控制台。
在左侧导航栏,点击 域名管理。
在 域名管理 页面,找到需要配置的域名,点击 管理。
在域名页面上,点击 访问控制 页签。
在页面右上方,点击 编辑配置。
在 Referer 黑白名单 下方,设置 状态 为启用。
参照 配置说明 进行配置。
在页面右上方,点击 提交编辑。
配置 | 说明 |
---|---|
类型 | 表示名单的类型。该配置有以下选项:
|
配置方式 | 表示名单中条目的来源。该配置有以下选项: |
规则内容 | 表示名单的配置选项,包含:
|
常规名单(输入框) | 表示一个常规名单。如果您在 规则内容 处勾选了 常规名单,该输入框会出现。 说明 如果您需要输入的条目数量超过 1,000,参考 全局配置。 关于泛域名和子域名
|
忽略大小写 | 表示常规名单中的条目是否是大小写敏感的。 |
忽略 scheme 校验 | 表示 CDN 将用户请求中的 Referer 与您配置的常规名单匹配前,CDN 是否校验用户请求中的 Referer 头部。
符合 URL 规范的 Referer 头部
说明 该配置对正则名单不生效。也就是说,当 CDN 将用户请求中的 Referer 与您配置的正则名单匹配前,CDN 不会校验用户请求中的 Referer 头部。 |
正则名单(输入框) | 表示一个正则表达式的名单,用于匹配完整的 Referer 头部。您最多可以指定 100 个正则表达式,每个正则表达式一行。如果您在 规则内容 处勾选了 正则名单,该输入框会出现。 |
我们通过以下名单配置为例,阐述 Referer 头部的匹配逻辑。如果一个请求未匹配白名单或者匹配了黑名单,CDN 会拒绝请求并返回 403 响应状态码。
名单配置 | 用户请求中的 Referer 头部 | 匹配结果 | 匹配逻辑说明 |
---|---|---|---|
| http://www.test.com/test.js | 是 | Referer 头部中的域名匹配名单。 |
http://www.test.com:80/test.js | 是 | ||
www.test.com | 见匹配逻辑说明 |
| |
2001:DB8::1 | |||
http://2001:DB8::1 | 否 | Referer 头部不符合 URL 规范。规范要求当 host 是一个 IPv6 地址时,该地址必须包裹在 [] 中。 | |
http://[2001:DB8::1] | 是 | Referer 头部中的 IP 地址匹配名单。 | |
http://aaa.test.com | 是 | Referer 头部中的多级域名匹配名单中的泛域名条目。泛域名是包含多级域名的。 | |
http://ss.aaa.test.com | 是 | ||
http://test.com | 否 | Referer 头部中的二级域名不匹配名单中的泛域名条目。原因是泛域名不包含二级域名本身。 |