You need to enable JavaScript to run this app.
内容分发网络

内容分发网络

复制全文
流量安全
高级访问控制
复制全文
高级访问控制

通过火山引擎内容分发网络(CDN)的高级访问控制功能,您可以基于请求的特征(例如客户端 IP、请求头部、URL 参数等)创建复杂的访问控制策略。此功能使您能够精确识别和管理传入的 CDN 流量,从而有效应对各类网络威胁、保护您的在线内容和应用。

每个域名支持配置 3 条策略,主账号下最多可以配置 200 条策略。一条策略由匹配规则和处置规则组成。

  • 匹配规则:定义请求的特征。
  • 处置规则:定义 CDN 对满足匹配规则的请求所执行的操作。

本文将指导您如何通过控制台配置策略。

Image

策略执行逻辑

当收到用户请求时,CDN 会按照策略的优先级顺序,依次将请求与策略进行匹配。如果请求匹配了某条策略,CDN 就会执行该策略中的处置规则,同时不再继续匹配后续策略。

操作步骤

步骤一:创建策略

  1. 登录 火山引擎内容分发网络控制台
  2. 在左侧导航栏,点击 流量安全
  3. 流量安全 页面,点击 高级访问控制 标签页。
  4. 高级访问控制 标签页上,点击 新增
  5. 关联域名 列表中选择该策略需要关联的域名,然后设置策略的优先级。

Image

步骤二:添加匹配规则

匹配规则用于定义请求的特征。一个策略中最多可以添加 5 条匹配规则。当存在多条匹配规则时,规则之间的默认逻辑关系为 且(AND)。点击 添加匹配规则,然后根据以下说明设置规则:

匹配字段

说明

可指定的逻辑符

忽略大小写选项

文件全路径

表示请求 URL 中的路径。

等于、不等于

支持

文件目录

表示路径中的一个目录。

等于、不等于

支持

文件后缀

表示路径末尾的扩展名。

等于、不等于

支持

全路径正则

表示请求 URL 中的路径,通过正则表达式匹配。

匹配、不匹配

不支持

Query Name

表示请求 URL 中的某个查询参数。您需要指定查询参数的名称。

等于、不等于、为空、不为空、存在、不存在

支持

Query String

表示请求 URL 中的查询字符串,通过正则表达式匹配。查询字符串不包含开头的 ?

匹配、不匹配

不支持

请求方法

客户端发起请求时使用的 HTTP 方法。可选项包括 GETPOSTDELETEPUTHEADPATCHCONNECTOPTIONS

等于、不等于

不支持

User-Agent 头部

表示请求中 User-Agent 头部。

等于、不等于、为空、不为空、存在、不存在

支持

自定义请求头部

表示请求中的某个头部。您需要指定头部的名称。

等于、不等于、为空、不为空

支持

客户端 IP

表示客户端的 IP 地址。

等于、不等于

不支持

客户端 IP(优先匹配 XFF 头部)

表示客户端的 IP 地址。如果请求中存在 X-Forwarded-For,则优先使用该头部值中的第一个 IP 地址作为客户端 IP。

等于、不等于

不支持

JA3 指纹

表示 CDN 在 TLS 握手过程中,根据 ClientHello 报文中提取的特征生成的哈希值,用于识别非预期和恶意客户端(如爬虫、攻击工具)。参与指纹生成的特征包括:

  • SSLVersion:表示客户端在 ClientHello 消息中声明的 TLS 协议版本。
  • Cipher:表示客户端支持的加密套件列表。
  • SSLExtension:表示客户端在握手请求中携带的 TLS 扩展列表。
  • EllipticCurve:表示客户端支持的椭圆曲线类型列表。
  • EllipticCurvePointFormat:表示客户端支持的椭圆曲线点格式列表。

等于、不等于

不支持

客户端区域

表示客户端所在的国家或地区。

等于、不等于

不支持

步骤三:配置处置规则

处置规则定义了 CDN 对满足匹配规则的请求所执行的操作。请根据以下说明设置规则:

配置

说明

处置动作

表示具体的处置操作。可选的操作有:

  • 观察:表示不执行任何操作,仅记录相关事件。
  • 拦截:表示阻止请求。
  • JavaScript 挑战:表示向客户端返回一个包含 JavaScript 代码的重定向页面。客户端需要成功执行页面中的 JavaScript 代码才能通过验证并继续访问。此操作可以有效识别不具备 JavaScript 执行能力的客户端,例如自动化脚本或 DDoS 攻击工具。
  • 限速:对请求进行限速。

状态码

表示当 处置动作拦截 时,CDN 向客户端返回的 HTTP 状态码。取值范围是 400 至 499。

响应页面

表示当 处置动作拦截 时,CDN 向客户端返回的自定义响应页面的内容。

限速值

表示当 处置动作限速 时,CDN 在响应请求时的最高数据传输速度,范围是 10KB/S-10MB/S。

JavaScript 挑战使用说明

在以下场景中,不建议使用 JavaScript 挑战:

  • 非浏览器客户端:如果客户端是移动应用(App)或通过 API 调用资源,这些客户端通常无法执行 JavaScript 代码,会导致请求被误拦截。
  • 请求特定资源类型:如果客户端通过 Accept 头部明确要求非 HTML 类型的资源(例如 image/jpegapplication/json),JavaScript 挑战返回的 HTML 页面会导致类型不匹配,从而使挑战失败。

附录:配置输入要求

匹配字段

输入要求

文件全路径

  • 每个路径都必须以 / 开头,不能包含空格,长度不超过 300 个字符。
  • 支持使用通配符 *,例如 /test/*.jpg
  • 最多输入 20 个路径,以回车分隔。

文件目录

  • 根目录表示为 /,其他目录必须以 / 开头和结尾,例如 /test/
  • 每个目录的长度不超过 300 个字符,不能包含空格。
  • 最多输入 20 个目录,以回车分隔。

文件后缀

  • 每个后缀只能包含字母和数字,长度不超过 50 个字符。例如 jpg
  • 最多输入 20 个后缀,以回车分隔。

全路径正则

  • 每个正则表达式的长度不能超过 300 个字符。
  • 最多输入 20 个正则表达式,以回车分隔。

Query Name

参数名称

  • 长度不超过 100 个字符。
  • 可以包含字母,数字,下划线(_),连字符(-),句点(.)。

参数值

  • 每个参数值的长度不超过 100 个字符,不能包含空格。
  • 最多输入 20 个参数值,以回车分隔。

Query String

  • 每个正则表达式的长度不超过 100 个字符。
  • 最多输入 20 个正则表达式,以回车分隔。

User-Agent 头部

  • 每个头部值的开头和结尾可以使用通配符 *,但头部值不能仅为 *,长度不超过 100 个字符。
  • 最多输入 20 个头部值,以回车分隔。

自定义请求头部

头部名称

  • 长度不超过 100 个字符。
  • 可以包含字母,数字,下划线(_),连字符(-),句点(.)。

头部值

  • 每个头部值的开头和结尾可以使用通配符 *,但头部值不能仅为 *,长度不超过 100 个字符。
  • 最多输入 20 个头部值,以回车分隔。

客户端 IP

  • 支持 IPv4、IPv6 或 CIDR 格式。
  • 最多输入 20 个 IP 地址,以回车分隔。

JA3 指纹

  • 每个 JA3 指纹的长度不超过 100 个字符。
  • 最多输入 20 个 JA3 指纹,以回车分隔。
最近更新时间:2026.01.21 17:14:18
这个页面对您有帮助吗?
有用
有用
无用
无用