本文档介绍如何在火山引擎内容分发网络(CDN)中配置 Origin 黑白名单。
Origin 是用户请求中的一个请求头,表示请求是来自哪个站点的。Origin 头部包含协议,域名和端口,不包含路径与查询字符串。端口号是可选的。
Origin 头部的作用之一是防盗链。您可以为您的站点配置一个 Origin 黑名单以拒绝来自指定域名的请求。或者您可以为您的站点配置一个 Origin 白名单只允许接受来自指定域名的请求。
"空 Origin" 的定义是 Origin 头部没有值或者请求中不包含 Origin 头部。
说明
Origin: null
不被视为是 "空 Origin" 情况。
CDN 提供的一系列访问控制功能有不同的优先级。在 CDN 处理用户请求时,这些功能按优先级对请求生效。参见 访问控制功能的优先级。
配置 | 说明 |
---|---|
类型 | 表示名单的类型。该配置有以下选项:
|
常规名单(输入框) | 表示一个或者多个名单条目。如果您在 规则内容 处勾选了 常规名单,该输入框会出现。
|
允许空 Origin 访问 CDN 资源 / 不允许空 Origin 访问 CDN 资源 | 表示 CDN 是否接受 Origin 为空的请求。参见 空 Origin。
|
忽略大小写 | 表示 CDN 在尝试将名单中的条目与请求中的 Origin 头部匹配时,匹配过程是否是大小写敏感的。勾选该选项示匹配过程是大小写不敏感的。 |
我们通过以下名单配置为例,阐述 Origin 头部的匹配逻辑。如果一个请求未匹配白名单或者匹配了黑名单,CDN 会拒绝请求并返回 403 响应状态码。
名单配置 | 用户请求中 Origin 头部 | 匹配名单 | 匹配逻辑说明 |
---|---|---|---|
| http://www.test.com | 是 | Origin 头部中的域名匹配名单。 |
http://www.test.com:80 | 是 | ||
www.test.com | 否 | Origin 头部不符合 HTTP 协议规范。规范要求 Origin 头部部值必须是以下格式之一:
| |
2001:0db8:3c4d:0015:0000:0000:1a2f:1a2b | 否 | ||
http://2001:0db8:3c4d:0015:0000:0000:1a2f:1a2b | 否 | Origin 头部不符合 HTTP 协议规范。规范要求当 host 是一个 IPv6 地址时,该地址必须包裹在 [] 中。 | |
http://[2001:0db8:3c4d:0015:0000:0000:1a2f:1a2b] | 是 | Origin 头部中的 IP 地址匹配名单。 | |
http://aaa.test.com | 是 | Origin 头部中的多级域名匹配名单中的泛域名条目。泛域名是包含多级域名的。 | |
http://ss.aaa.test.com | 是 | ||
http://test.com | 否 | Origin 头部中的二级域名不匹配名单中的泛域名条目。原因是泛域名不包含二级域名本身。 |