内容分发网络 CDN TypeC

为保护你的站点资源不被非法站点下载盗用,可以按需选择 Type ABCD 四种鉴权方式的某一种,这里逐项说明 Type C 的各个参数字段和原理。

相关产品
内容分发网络 CDN 产品页,含版本规格、价格与购买入口。

一、算法说明

·访问 URL 格式

http://DomainName/md5hash/timestamp/FileName

·鉴权字段说明

字段 说明
DomainName CDN 域名。
FileName 资源访问路径,鉴权时 FileName 需以正斜线( / )开头。
timestamp 服务端生成鉴权 URL 的时间,使用十六进制整型正数的 Unix 时间戳,是从 UTC 时间1970年01月01日00时00分00秒到现在的总秒数,其定义与所在时区无关。
md5hash 通过 MD5 算法计算出的固定长度为32位的字符串。具体计算公式如下:md5hash = md5sum(pkeyuritimestamp)参数之间无任何符号 pkey: 自定义密钥:由6 – 40位大小写字母、数字构成,支持配置主备,可按需配置备用鉴权密钥,密钥需要严格保密,仅客户端与服务端知晓。 uri 资源访问路径以正斜线(/)开头。timestamp: 取值为上述中的timestamp。

·鉴权逻辑说明

·CDN 服务器接收到客户请求后,解析出 url 中的 timestamp 参数 + 鉴权 URL 有效时长与当前时间比较。

·如果 timestamp + 鉴权 URL 有效时长小于当前时间,则服务器判定过期失效,并返回 HTTP 403错误。

·如果 timestamp + 鉴权 URL 有效时长大于当前时间,则使用 MD5 算法算出 md5hash 的值,再比较计算出来的 md5hash 值与 url 中传入的 md5hash 值,如果一致则通过,不一致则返回 HTTP 403错误。

二、配置指南

以 Type-C 鉴权的配置为例,参数和控制台配置如下:

·字段配置

·鉴权密钥:dimtm5evg50ijsx2hvuwyfoiu65

·鉴权URL有效时长为:1s

·签算服务器生成鉴权 URL 的时间:2020年02月27日16:10:32(UTC+8),以十进制 Unix 时间戳转换为十六进制的整型数值为5e577978(timestamp)。

·请求源站地址:http://cloud.tencent.com/test.jpg

·生成过程

·获取鉴权参数

参数 值
uri 资源访问路径为 /test.jpg
timestamp 5e577978
pkey dimtm5evg50ijsx2hvuwyfoiu65

·拼接签名串:dimtm5evg50ijsx2hvuwyfoiu65/test.jpg5e577978

·计算签名串的 md5 值:md5hash = md5sum(pkeyuritimestamp)=md5sum(dimtm5evg50ijsx2hvuwyfoiu65/test.jpg5e577978)=7913fc0c5c9e92dd3633b7895152bbb2

·生成鉴权 URL:

http://cloud.tencent.com/7913fc0c5c9e92dd3633b7895152bbb2/5e577978/test.jpg

当客户端通过加密 URL 进行访问时,如果 CDN 服务器计算出来的 md5hash 值与访问请求中携带的 md5hash 值相同,都为 7913fc0c5c9e92dd3633b7895152bbb2,则鉴权通过,反之鉴权失败。

三、注意事项

缓存命中率

开启了 Type C 鉴权模式的域名,访问 URL 路径中会携带签名及时间戳,在 CDN 节点进行资源缓存时,会自动忽略鉴权路径进行缓存,不会影响域名缓存命中率。

回源策略

开启了 Type C 鉴权模式的域名,访问格式为:

http://DomainName/md5hash/timestamp/FileName

鉴权通过后,未命中 CDN 节点,节点会发起回源请求,回源请求会去掉路径中的 md5hash 及 timestamp 路径,源站无需做特殊处理。

赞 (0)
上一篇 4天前
下一篇 4天前