通过火山引擎内容分发网络(CDN)的高级访问控制功能,您可以基于请求的特征(例如客户端 IP、请求头部、URL 参数等)创建复杂的访问控制策略。此功能使您能够精确识别和管理传入的 CDN 流量,从而有效应对各类网络威胁、保护您的在线内容和应用。
每个域名支持配置 3 条策略,主账号下最多可以配置 200 条策略。一条策略由匹配规则和处置规则组成。
本文将指导您如何通过控制台配置策略。
当收到用户请求时,CDN 会按照策略的优先级顺序,依次将请求与策略进行匹配。如果请求匹配了某条策略,CDN 就会执行该策略中的处置规则,同时不再继续匹配后续策略。
匹配规则用于定义请求的特征。一个策略中最多可以添加 5 条匹配规则。当存在多条匹配规则时,规则之间的默认逻辑关系为 且(AND)。点击 添加匹配规则,然后根据以下说明设置规则:
匹配字段 | 说明 | 可指定的逻辑符 | 忽略大小写选项 |
|---|---|---|---|
文件全路径 | 表示请求 URL 中的路径。 | 等于、不等于 | 支持 |
文件目录 | 表示路径中的一个目录。 | 等于、不等于 | 支持 |
文件后缀 | 表示路径末尾的扩展名。 | 等于、不等于 | 支持 |
全路径正则 | 表示请求 URL 中的路径,通过正则表达式匹配。 | 匹配、不匹配 | 不支持 |
Query Name | 表示请求 URL 中的某个查询参数。您需要指定查询参数的名称。 | 等于、不等于、为空、不为空、存在、不存在 | 支持 |
Query String | 表示请求 URL 中的查询字符串,通过正则表达式匹配。查询字符串不包含开头的 | 匹配、不匹配 | 不支持 |
请求方法 | 客户端发起请求时使用的 HTTP 方法。可选项包括 | 等于、不等于 | 不支持 |
User-Agent 头部 | 表示请求中 | 等于、不等于、为空、不为空、存在、不存在 | 支持 |
自定义请求头部 | 表示请求中的某个头部。您需要指定头部的名称。 | 等于、不等于、为空、不为空 | 支持 |
客户端 IP | 表示客户端的 IP 地址。 | 等于、不等于 | 不支持 |
客户端 IP(优先匹配 XFF 头部) | 表示客户端的 IP 地址。如果请求中存在 | 等于、不等于 | 不支持 |
JA3 指纹 | 表示 CDN 在 TLS 握手过程中,根据 ClientHello 报文中提取的特征生成的哈希值,用于识别非预期和恶意客户端(如爬虫、攻击工具)。参与指纹生成的特征包括:
| 等于、不等于 | 不支持 |
客户端区域 | 表示客户端所在的国家或地区。 | 等于、不等于 | 不支持 |
处置规则定义了 CDN 对满足匹配规则的请求所执行的操作。请根据以下说明设置规则:
配置 | 说明 |
|---|---|
处置动作 | 表示具体的处置操作。可选的操作有:
|
状态码 | 表示当 处置动作 为 拦截 时,CDN 向客户端返回的 HTTP 状态码。取值范围是 400 至 499。 |
响应页面 | 表示当 处置动作 为 拦截 时,CDN 向客户端返回的自定义响应页面的内容。 |
限速值 | 表示当 处置动作 为 限速 时,CDN 在响应请求时的最高数据传输速度,范围是 10KB/S-10MB/S。 |
在以下场景中,不建议使用 JavaScript 挑战:
Accept 头部明确要求非 HTML 类型的资源(例如 image/jpeg 或 application/json),JavaScript 挑战返回的 HTML 页面会导致类型不匹配,从而使挑战失败。匹配字段 | 输入要求 |
|---|---|
文件全路径 |
|
文件目录 |
|
文件后缀 |
|
全路径正则 |
|
Query Name | 参数名称
参数值
|
Query String |
|
User-Agent 头部 |
|
自定义请求头部 | 头部名称
头部值
|
客户端 IP |
|
JA3 指纹 |
|