URL 鉴权

最近更新时间:2024-08-22 15:08:16

我的收藏

业务场景

为了防止 URL 被盗刷 CDN 资源而产生高额流量,使用 URL 鉴权方式给 CDN 资源加密以防止被盗刷。

具体需求

配置 URL 鉴权域名:www.qcdntest.cn 测试资源访问路径:/test.jpg 鉴权密钥:dimtm5evg50ijsx2hvuwyfoiu65 签名参数:sign 有效时间:150s 鉴权范围:指定文件后缀鉴权 文件后辍:jpg;html;css

配置步骤

1. 在控制台菜单栏里选择域名管理,单击域名右侧管理,即可进入域名配置页面访问控制中找到鉴权配置,默认情况下,鉴权配置为关闭状态:


2. 配置状态打开,弹出配置框进入配置项 鉴权模式可以选择 TypeA、TypeB、TypeC、TypeD 四种模式可以选择,每种模式的访问 URL 格式不同,如下是对于各个模式的URL格式(访问 URL 中不能包含中文)


TypeA:http://DomainName/Filename?sign=timestamp-rand-uid-md5hash TypeB:http://DomainName/timestamp/md5hash/FileName TypeC:http://DomainName/md5hash/timestamp/FileName TypeD:http://DomainName/FileName?sign=md5hash&t=timestamp
字段说明
DomainName:CDN 域名;
Filename:资源访问路径;
rand:随机字符串,0 - 100位随机字符串,由大小写字母与数字组成;
uid: 0
timestamp: TypeA 使用十进制整型正数的 Unix 时间戳 、TypeB 使用十进制(YYYYMMDDHHMM)格式、TypeC 使用十六进制(Unix 时间戳)、TypeD 可选十或十六进制(Unix 时间戳) ;
md5hash: MD5 格式:TypeA(文件路径-timestamp-rand-uid-自定义密钥)、TypeB(自定义密钥 + timestamp + 文件路径)、TypeC(自定义密钥 + 文件路径 + timestamp)、TypeD(自定义密钥 + 文件路径 + timestamp);
3. 参数设置 将鉴权密钥、签名参数、有效时间填入对应参数



4. 配置鉴权的范围


根据业务需求给鉴权对象做鉴权,推荐选择指定文件后辍鉴权,将所有已经配置缓存的静态文件后辍鉴权。

测试验证

本次测试使用 TypeA 模式验证,其它模式的测试可参考以上步骤配置。 测试时间:2022年6月27日 11:30 测试 URL:http://www.qcdntest.cn/test.jpg

验证场景一

带鉴权参数,验证返回结果 打开鉴权计算器将参数填入 获得带鉴权 URL 如下(如是 https 访问需手动调整 https): http://www.qcdntest.cn/test.jpg?sign=1656300600-FnyigRo7yny-0-3276ffbdf30dc974ed955d7db761653a 执行命令:
curl http://www.qcdntest.cn/test.jpg?sign=1656300600-FnyigRo7yny-0-3276ffbdf30dc974ed955d7db761653a -i



带鉴权 URL 的结果返回200状态码,配置生效。

验证场景二

未带鉴权参数,验证返回结果 使用不带鉴权参数的 URL, 看测试域名是否能正常访问。 执行命令:
curl http://www.qcdntest.cn/test.jpg -i



未带鉴权参数的 URL,返回403状态码。

验证场景三

使用过期的鉴权 URL 参数,验证返回结果 过期鉴权 URL:http://www.qcdntest.cn/test.jpg?sign=1656300600-FnyigRo7yny-0-3276ffbdf30dc974ed955d7db761653a 执行命令:
curl http://www.qcdntest.cn/test.jpg?sign=1656300600-FnyigRo7yny-0-3276ffbdf30dc974ed955d7db761653a -i



带过期鉴权 URL,返回403状态码。