更新时间:2024-07-17 17:28:44
当客户端向 Web 服务器发送请求时,通常会携带一个 User-Agent 头,该头标识请求来源的设备和浏览器。它详细说明了操作系统及其版本,以及浏览器类型和版本。因此,可以基于这个头进行访问控制。当 CDN 边缘服务器接收到客户端请求时,它会检查 HTTP 请求头中的 User-Agent 字段中的信息,然后根据特定规则允许或拒绝用户请求。
User-Agent 访问规则适用于以下场景:
生效范围
访问的生效范围,即配置针对哪些请求进行User-Agent黑白名单的访问控制。这里我们提供如下生效范围供您选择。
配置项 | 说明 |
---|---|
所有请求 | 即该访问控制规则,将所有类型的请求都生效。 |
仅首页 | 仅针对域名根目录格式的请求生效,比如http://domain/ 或https://domain/ 。 |
指定文件类型 | 仅对特定类型的文件生效,您可以在左侧选择对应的文件类型,也可以自定义文件类型。对于自定义文件类型,多个文件类型之前请通过分号; 分割,例如:jpg;png 。 |
指定URI | 访问控制仅对指定URI的内容请求生效,这里我们提供两种URI匹配模式,精准匹配和忽略参数匹配。精准匹配:指定完整的URI,包括参数。比如,path/index.html?abc=123 。忽略参数匹配:仅填入问号前的路径,无需指定参数。比如,path/index.html 。 |
指定目录 | 仅对部分目录下的请求进行访问控制,比如,当配置为/file/abc/ 表示对http://domain/file/abc/* 下所有的内容都会生效。注意:目录必须以/ 作为开头和结尾,只能包含由字母、数字及部分特殊符号(包含下划线、减号、百分号、点)任意组合,当有多个目录时,目录间需要进行换行分隔。 |
URL正则匹配 | 通过正则表达式来控制生效范围。比如*.jpg$ 代表访问控制将对所有的以jpg 结尾的URL生效。 |
规则类型
您可以设置User-Agent黑名单和白名单。白名单用于添加允许访问的User-Agent,黑名单则被用于拒绝不受信任的User-Agent.
配置项 | 说明 |
---|---|
User-Agent黑名单 | 当HTTP请求头中的User-Agent字段匹配到黑名单时,用户将无法访问所请求的内容。 |
User-Agent白名单 | 用户只有在HTTP请求头中的User-Agent字段匹配到白名单时,才能访问所请求的内容。 |
注意
User-Agent的黑名单和白名单均支持添加多个值,这些值之间应以换行符分隔。
系统仅支持设置一条User-Agent白名单规则。如果需要添加多个User-Agent值,请确保他们被包含在这同一条规则内。
控制动作
当客户端请求的User-Agent不符合设定的规则,请求被CDN拒绝时,直接返回错误码还是跳转到其他URL。其中:
忽略大小写
黑白名单规则是否区分大小写可以进行设置。当该选项设置为是,黑白名单中的值将不区分大小写。例如,如果在白名单中将 Chrome/123.0.0.0
设置为允许访问,那么无论请求中的 User-Agent 值是 Chrome/123.0.0.0
还是 chrome/123.0.0.0
,用户都可以访问所请求的内容。
优先级
当您配置了多条访问控制规则,CDN将按照优先级大小先后执行,数字大的规则将被优先执行判断。
请您不要同时配置User-Agent黑白名单,因为这样配置后,请求中User-Agent会分别被黑名单和白名单依次校验,这可能会导致所有的CDN访问均被拒绝,从而会对您的线上业务带来影响。
例如,当按照下图的方式同时配置User-Agent黑名单和白名单,会导致所有访问均被CDN拒绝。
为什么所有访问都会被拒绝?
Chrome/123.0.0.0
时,由于此值匹配到黑名单规则,CDN 将拒绝访问。Chrome/123.0.0.0
,尽管未被黑名单规则拒绝,但也未符合白名单规则,因此,根据白名单的设置(仅允许 Chrome/123.0.0.0
的请求访问),请求同样会被CDN拒绝。如果您确实需要同时配置黑白名单,请联系我们的技术支持来协助您确认。