更新时间:2024-04-08 14:31:42
时间戳防盗链的特点是加密的url具有时效性,无法伪造,当达到过期时间后url不再被允许访问,适合一些对“时效性”有要求的场景,使用时需要内容提供商和CDN配合,内容提供商负责生成加密的url,CDN负责根据预先设定的规则对url进行合法性验证。时间戳防盗链由于实现原理简单、可靠性高,推荐使用。
字段 | 说明 | 示列 |
---|---|---|
发布点 | 续加密算法中需要,配置发布点需在直播功能-发布点中有配置,否则可能出现访问失败 | live |
密文参数名称 | 与服务端约定校验的参数名称,可自定义。 | wsSecret |
时间参数名称 | 与服务端约定校验的参数名称,可自定义 | wsTime |
KEY | 加密时所用到的固定值 | ab12dfdbsd |
加密时间格式 | 加密所使用的时间格式,单位:秒;支持unix时间戳与16进制 | unix时间戳:1712477468 16进制:6612551C |
有效时间 | 请求访问的有效时间,支持4种方式,单位都是秒。 按时长: 根据url带时间参数(wsTime)往后延长多长时间内该url有效,超过该时长url将会失效 按绝对时间:url带时间参数(wsTime)即为过期时间 按有效时间: 通过keeptime确实有效时间,当当前时间超过时间参数带的时间(wsTime)+有效时间(keeptime),则url会过期 不检验时间的方式: url没有时间限制 |
|
误差时间 | 本地时间和北京时间可能存在偏差,设置误差时间作为偏移调整容忍值。 | |
加密方式 | 提供6种顺序的加密串,将加密串进行拼接进行md5加密,将加密后的只赋给密文参数(wsSecretc)通过url请求带给服务端。(路径指的是uri,域名后面那部分内容): KEY+路径+时间: KEY+时间+路径 路径+KEY+时间 路径+时间+KEY 时间+路径+KEY 时间+KEY+路径 |
示例1
1、配置实例如下:
2、时间戳访问url生成规则示例:
1) 原始url:http://cdn.wangsu.com/4/123.mp3
2) 加密key:wangsu
3) 访问时刻unix时间为: 1601026312
4) 路径:URI,需加上斜杠, /4/123.mp3
5) wsSecret签名字符串:key+路径+时间 即:wangsu/4/123.mp31601026312
6) wsSecret签名字符串计算md5hash。
wsSecret = md5sum("wangsu/4/123.mp31601026312 ") = 79aead3bd7b5db4adeffb93a010298b5
7)时间戳防盗链URL请求如下:
http://cdn.wangsu.com/4/123.mp3? wsSecret=79aead3bd7b5db4adeffb93a010298b5&wsTime=1601026312
8) 当用户发起带时间戳防盗链的url请求后,cdn服务器会对url内容进行校验,判断时间有效性及MD5值,两个值其中有一个不符合要求,返回403。
示例2
1、配置实例如下:
2、时间戳访问url生成规则示例:
1) 原始url:http://cdn.wangsu.com/4/123.mp3
2) 加密key:wangsu
3) 访问时刻unix时间为: 1601026312
4) 路径:URI,需加上斜杠, /4/123.mp3
5) wsSecret签名字符串:key+路径+时间 即:wangsu/4/123.mp31601026312
6) wsSecret签名字符串计算md5hash。
wsSecret = md5sum("wangsu/4/123.mp31601026312 ") = 79aead3bd7b5db4adeffb93a010298b5
7)时间戳防盗链URL请求如下:
http://cdn.wangsu.com/4/123.mp3? wsSecret=79aead3bd7b5db4adeffb93a010298b5&wsTime=1601026312&keeptime=3600
8) 当用户发起带时间戳防盗链的url请求后,cdn服务器会对url内容进行校验,判断时间有效性及MD5值,两个值其中有一个不符合要求,返回403。
注意事项:
1、时间戳防盗链默认支持,可以直接配置,不需要再次开发
2、当防盗链涉及的参数发生变更时,需要通知CDN进行配合更改,原则上密文一旦确定尽量不要发生变动,不然可能导致源和加速节点使用的密文不一致,请求全部验证不通过