更新时间:2024-07-17 17:29:21
自定义头部黑白名单使您可以指定必须在请求您的CDN资源时匹配的自定义HTTP头部,这确保只有来自批准的引用源或携带特定头部值的请求被允许访问,有效地防止了盗链,保护了您的数字资产。这个功能对于内容分发的控制、减少不必要的流量成本至关重要。
生效范围
访问的生效范围,即配置针对哪些请求进行基于自定义头部黑白名单的访问控制,这里我们提供如下生效范围供您选择。
配置项 | 说明 |
---|---|
所有请求 | 即该访问控制规则,将对所有类型的请求都生效。 |
仅首页 | 仅针对域名根目录格式的请求生效,比如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生效。 |
规则类型
您可以设置相应的自定义头部黑名单或白名单。
配置项 | 说明 |
---|---|
黑名单 | 在配置黑名单时,您需要分别指定不允许访问的自定义请求头名称及其对应的值:头域黑名单:这是需要校验的自定义 HTTP 请求头的名称。请注意,每个黑名单中最多只能添加一个请求头名称。 头域值黑名单:这些是被禁止的请求头值。如果请求中包含了这些值,访问将被拒绝。您可以设置多个禁止的值,各值之间应使用; 分隔。 |
白名单 | 在配置白名单时,跟黑名单一样,您也需要分别指定允许访问的自定义请求头名称及其对应的值:头域黑名单:这是需要校验的自定义 HTTP 请求头的名称。同样的,每个白名单中最多只能添加一个请求头名称。 头域值黑名单:这些是被允许访问的请求头值。只有请求中包含了这些值,访问才将被允许。您可以设置多个禁止的值,各值之间应使用; 分隔。 |
来源 | 可以设置校验请求头部的来源为客户端,还是服务器。客户端:指的是校验从客户端(如用户的浏览器或应用)发出的请求中的特定HTTP头部是否符合预设的规则。服务器:指的是校验从服务器(通常指客户的源站)响应的内容中,特定的响应头部是否符合预设的规则 |
系统只支持添加一条自定义头部的白名单,且每条白名单中只能包含一个自定义头部。如果您需要添加多个自定义头部,请联系我们的技术服务支持团队,以便为您提供帮助。
控制动作
当请求的头部不符合设定的规则,用户的请求被CDN拒绝时,直接返回错误码还是跳转到其他URL。其中:
忽略大小写
黑白名单规则是否区分大小写可以进行设置。当该选项设置为是,黑白名单中的值将不区分大小写。
优先级
当您配置了多条访问控制规则,CDN将按照优先级大小先后执行,数字大的规则将被优先执行判断。
完成上述配置后,请点击确认,然后选择下一步提交您的配置。为了避免配置影响您的生产环境,我们推荐您先预部署,把配置生效到测试环境中来验证您的配置是否正确。当配置确定无误后,单击直接部署将配置正式生效到线上环境,通常约3-5分钟后,配置将正式生效到线上环境。关于预部署测试的更多细节,请参考教程通过预部署来验证配置是否生效。
示例一:配置自定义头部黑名单
如果客户端请求头中包含 Test-Header
,并且其值为 key1
或 key2
,则禁止访问。
示例二:配置自定义头部白名单
仅当客户端请求头中包含 Test-Header
,并且其值为 key1
或 key2
时,才允许访问;
请您不要同时配置自定义头部黑白名单,因为请求头的值会分别被黑名单和白名单依次校验,这可能会导致所有的CDN访问均被拒绝,从而会对您的线上业务带来影响。
例如,当按照下图的方式同时配置自定义头部的黑名单和白名单,会导致所有访问均被CDN拒绝。
为什么所有访问都会被拒绝?
Test-Header
且其值为 key1
,则因为匹配到黑名单规则,访问将被 CDN 拒绝。Test-Header
但其值不是 key1
,虽然不被黑名单拒绝,但由于不符合白名单规定(白名单要求请求头Test-Header
的值为 key1
),请求同样被拒绝。如果您确实需要同时配置黑白名单,请联系我们的技术支持来协助您确认。