最近更新时间:2024.01.12 15:10:33
首次发布时间:2022.03.15 00:07:44
本文档介绍如何在火山引擎内容分发网络中配置 Origin 防盗链。
Origin 是 HTTP 请求中的一个请求头,表示请求是来自哪个站点的。Origin 头包含协议,域名和端口,不包含路径与查询字符串。端口号是可选的。
Origin 头的作用之一是防盗链。您可以为您的站点配置一个 Origin 黑名单以拒绝来自指定域名的请求。或者您可以为您的站点配置一个 Origin 白名单只允许接受来自指定域名的请求。
"空 Origin" 的定义是 Origin 头没有值或者请求中不包含 Origin 头。
说明
Origin: null
不被视为是 "空 Origin" 情况。
配置 | 说明 |
---|---|
类型 | 该配置有以下选项:
|
常规名单 | 输入一个或者多个名单条目。名单的长度不能超过 30,000 个字符。您可以输入一个或者多个域名(包括子域名和泛域名)和 IP 地址( 包括 IPv4 地址、IPv6 地址、CIDR 网段)。多个条目使用分号(;)或换行符分隔。您最多可以输入 100 个条目。需要注意的是,一个二级域名是单个域名,不是泛域名。一个泛域名不包含二级域名本身。例如:*.test.com 不包含二级域名 test.com,但是包含 www.test.com、a.a.test.com 等。 |
空 Origin 处理逻辑 |
|
忽略大小写 | 表示 Origin 在用于过滤请求时是否区分大小写。 |
我们通过以下名单配置为例,阐述 Origin 头的匹配逻辑。如果一个请求未匹配白名单或者匹配了黑名单,内容分发网络会拒绝请求并返回 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 头中的二级域名不匹配名单中的泛域名条目。原因是泛域名不包含二级域名本身。 |