You need to enable JavaScript to run this app.
导航
Referer 黑白名单
最近更新时间:2024.12.11 10:47:58首次发布时间:2024.12.11 10:47:58

本文档介绍如何在CDN加速服务中配置 Referer 黑白名单。

概述

Referer 是用户请求中的一个请求头,表示请求是来自哪个站点页面的。Referer 头部指示了源页面的 URL,包含协议,域名,端口,路径与查询字符串。端口是可选的。

Referer 头部的作用之一是防盗链。默认情况下,您在 Referer 名单中配置的条目仅仅是域名和 IP 地址。在收到请求时,CDN加速服务尝试将这些条目与 Referer 头部中的域名或 IP 地址进行匹配。如果您希望CDN加速服务尝试对 Referer 头部中的路径或查询字符串进行匹配,您需要在名单中指定正则表达式。参见 配置说明规则内容 配置的描述。

空 Referer

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

功能优先级

CDN加速服务提供的一系列访问控制功能有不同的优先级。在CDN加速服务处理用户请求时,这些功能按优先级对请求生效。参见 访问控制功能的优先级

前提条件

您已经添加域名到CDN加速服务。相关操作,请参见添加域名

操作步骤

  1. 登录多云CDN控制台

  2. 在左侧导航栏,单击 CDN加速
  3. 在CDN加速域名列表找到您的域名,单击域名名称。
  4. 在域名页面,单击 访问控制 页签。
  5. 在页面右上方,单击 编辑配置
  6. Referer 黑白名单 区域,设置 状态 为启用。
  7. 参照 配置说明 进行配置。
  8. 在页面右上方,单击 提交编辑

alt

配置说明

配置说明

类型

表示名单的类型。该配置有以下选项:

  • 白名单:当您只想允许来自某些站点的请求时,可以配置 Referer 白名单。如果用户的请求不匹配白名单,CDN加速服务拒绝请求并且响应 403 状态码。
  • 黑名单:当您只想阻止来自某些站点的请求时,可以配置 Referer 黑名单。如果用户的请求匹配了黑名单,CDN加速服务拒绝请求并且响应 403 状态码。

规则内容

表示名单中条目的类型。该配置有以下选项:

  • 常规名单:表示名单中的每个条目是一个 IP 地址或者域名。
  • 空 Referer:表示 "空 Referer" 的配置。
    • 如果 类型黑名单,勾选该选项表示CDN加速服务拒绝 Referer 为空的请求,不勾选该选项表示CDN加速服务接受 Referer 为空的请求。
    • 如果 类型白名单,勾选该选项表示CDN加速服务接受 Referer 为空的请求,不勾选该选项表示CDN加速服务拒绝 Referer 为空的请求。

常规名单(输入框)

表示一个或者多个名单条目。如果您在 规则内容 处勾选了 常规名单,该输入框会出现。

输入要求
名单最多可以包含 1,000 个条目,总长度不能超过 30,000 个字符。您可以输入一个或者多个域名和 IP 地址。域名可以是泛域名。IP 地址可以是 IPv4 地址、IPv6 地址、IPv4 CIDR 地址或者 IPv6 CIDR 地址。多个条目之间使用分号(;)或换行符分隔。
关于泛域名和子域名

  • 泛域名不包含域名本身。例如:*.example.com 不包含二级域名 example.com,但是包含 www.example.coma.a.example.com 等。
  • 子域名的级别数量没有限制。例如,您可以指定一个子域名为 aaa.bbb.ccc.ddd.eee.fff.ggg.eee.example.com。关于 Referer 名单的匹配逻辑,参见 Referer 匹配逻辑
忽略大小写表示CDN加速服务在尝试将名单中的条目与请求中的 Referer 头部匹配时,匹配过程是否是大小写敏感的。勾选该选项示匹配过程是大小写不敏感的。

忽略 scheme 校验

表示在尝试使用名单中条目匹配 Referer 头部前,CDN加速服务是否校验 Referer 头部的合法性。

  • 如果您勾选该选项,CDN加速服务不会校验 Referer 头部的合法性。
  • 如果您不勾选该选项,CDN加速服务会校验 Referer 头部的合法性。如果一个请求的 Referer 头部不合法,无论您配置的是黑名单还是白名单,CDN加速服务都会拒绝该请求。

    关于 Referer 头部合法性
    一个合法的 Referer 头部必须符合 HTTP 协议规范。规范要求 URL 必须是以下格式之一:
  • scheme://host:port/path
  • scheme://host:port/
  • scheme://host:port
  • scheme://host/path
  • scheme://host/
  • scheme://host

Referer 匹配逻辑

我们通过以下名单配置为例,阐述 Referer 头部的匹配逻辑。如果一个请求未匹配白名单或者匹配了黑名单,CDN加速服务会拒绝请求并返回 403 响应状态码。

名单配置用户请求中的 Referer 头部匹配结果匹配逻辑说明
  • www.example.com
  • 192.0.2.0
  • 2001:0db8:3c4d:0015:0000:0000:1a2f:1a2b
  • *.example.com

http://www.example.com/test.js

Referer 头部中的域名匹配名单。

http://www.example.com:80/test.js

www.example.com

见匹配逻辑说明

  • 如果未启用 忽略 scheme 校验,结果是不匹配。原因是 Referer 头部不符合 HTTP 协议规范。
  • 如果启用了 忽略 scheme 校验,结果是匹配。
2001:0db8:3c4d:0015:0000:0000:1a2f:1a2b
http://2001:0db8:3c4d:0015:0000:0000:1a2f:1a2bReferer 头部不符合 HTTP 协议规范。规范要求当 host 是一个 IPv6 地址时,该地址必须包裹在 [] 中。
http://[2001:0db8:3c4d:0015:0000:0000:1a2f:1a2b]Referer 头部中的 IP 地址匹配名单。
http://aaa.example.comReferer 头部中的多级域名匹配名单中的泛域名条目。泛域名是包含多级域名的。
http://ss.aaa.example.com
http://example.comReferer 头部中的二级域名不匹配名单中的泛域名条目。原因是泛域名不包含二级域名本身。