You need to enable JavaScript to run this app.
导航

配置 Origin 防盗链

最近更新时间2024.01.12 15:10:33

首次发布时间2022.03.15 00:07:44

本文档介绍如何在火山引擎内容分发网络中配置 Origin 防盗链。

Origin 是 HTTP 请求中的一个请求头,表示请求是来自哪个站点的。Origin 头包含协议,域名和端口,不包含路径与查询字符串。端口号是可选的。

Origin 防盗链

Origin 头的作用之一是防盗链。您可以为您的站点配置一个 Origin 黑名单以拒绝来自指定域名的请求。或者您可以为您的站点配置一个 Origin 白名单只允许接受来自指定域名的请求。

关于空 Origin

"空 Origin" 的定义是 Origin 头没有值或者请求中不包含 Origin 头。

说明

Origin: null 不被视为是 "空 Origin" 情况。

操作步骤

  1. 登录 火山引擎内容分发网络控制台
  2. 在左侧导航栏,点击 域名管理
  3. 域名管理 页面,找到需要配置的域名,点击 管理
    页面上方的筛选条件和搜索框可以帮助您快速找到要配置的域名。
  4. 在域名页面上,点击 访问控制 页签。
  5. 在页面右上方,点击 编辑配置
  6. Origin 防盗链 下方,设置 状态开启
  7. 参照表格中内容进行配置。
  8. 在页面右上方,点击 提交编辑

alt

配置说明

类型

该配置有以下选项:

  • 白名单:当您只想允许来自某些站点的请求时,可以配置一个白名单。如果用户的请求不匹配白名单,内容分发网络拒绝请求并且响应 403 状态码

  • 黑名单:当您只想阻止来自某些站点的请求时,可以配置一个黑名单。如果用户的请求匹配了黑名单,内容分发网络拒绝请求并且响应 403 状态码。

常规名单

输入一个或者多个名单条目。名单的长度不能超过 30,000 个字符。您可以输入一个或者多个域名(包括子域名和泛域名)和 IP 地址( 包括 IPv4 地址、IPv6 地址、CIDR 网段)。多个条目使用分号(;)或换行符分隔。您最多可以输入 100 个条目。需要注意的是,一个二级域名是单个域名,不是泛域名。一个泛域名不包含二级域名本身。例如:*.test.com 不包含二级域名 test.com,但是包含 www.test.com、a.a.test.com 等。
子域名可以包含的级别数量没有限制。 关于 Origin 名单的匹配逻辑,参见 Origin 匹配逻辑

空 Origin 处理逻辑

  • 如果 类型黑名单,该选项是 允许空 Origin 访问 CDN 资源。勾选该选项表示允许 空 Origin 的请求 访问您的加速域名。
  • 如果 类型白名单,该选项是 不允许空 Origin 访问 CDN 资源。勾选该选项表示不允许 空 Origin 的请求 访问您的加速域名。
忽略大小写表示 Origin 在用于过滤请求时是否区分大小写。

Origin 匹配逻辑

我们通过以下名单配置为例,阐述 Origin 头的匹配逻辑。如果一个请求未匹配白名单或者匹配了黑名单,内容分发网络会拒绝请求并返回 403 响应状态码。

名单配置用户请求中 Origin 头匹配名单匹配逻辑说明
  • www.test.com

  • 1.1.1.1

  • 2001:0db8:3c4d:0015:0000:0000:1a2f:1a2b

  • *.test.com

http://www.test.com

Origin 头中的域名匹配名单。

http://www.test.com:80

www.test.com

Origin 头不符合 HTTP 协议规范。规范要求 Origin 头部值必须是以下格式之一:

  • scheme://host:port

  • scheme://host

2001:0db8:3c4d:0015:0000:0000:1a2f:1a2b

http://2001:0db8:3c4d:0015:0000:0000:1a2f:1a2bOrigin 头不符合 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.comOrigin 头中的二级域名不匹配名单中的泛域名条目。原因是泛域名不包含二级域名本身。