文档反馈
文档反馈

防盗链功能使用说明

1 功能简介

直播防盗链是指通过在推拉流地址中添加鉴权字符串,来保证视频资源安全的一种方式。开通直播防盗链功能后,推拉流地址中会包含一段鉴权字符串,只有合法生成的鉴权串才能进行正常的推流和拉流;另外,推拉流地址具有时效性,只有在有效期内才能正常地推拉流。

2 功能原理

直播防盗链分为推流防盗链和拉流防盗链,都是利用URL鉴权来实现的,该功能是通过云信CDN加速节点与用户资源站点配合实现:

3 具体步骤

主要步骤如下:

第一步:开通功能

用户可联系网易云信确认开通推流防盗链或拉流防盗链功能。

第二步:生成推拉流地址

开通推拉流防盗链后,用户通过管理控制台或者服务端API获取到的推拉流地址默认会带着鉴权字符串,即获取到的就是完整的可使用的推拉流地址,防盗链的有效期默认120分钟,过期后推拉流地址将会失效。

4 鉴权方法

4.1 防盗链URL构成

举例说明,用户通过管理控制台或服务端API获取到推拉流地址如下:

pushDomain、httpPullDomain、hlsPullDomain、rtmpPullDomain分别代表您的推流域名、http拉流域名、hls拉流域名和rtmp拉流域名,live是固定挂载点不变,cidxxxxxxxxxx是直播频道ID

推流地址中,wsTime是生成校验字符串时的UNIX时间戳(单位秒),wsSecret是根据一定规则生成的加密字符串,见下文

拉流地址中,playTime是生成校验字符串时的UNIX时间戳(单位秒),playSecret是根据一定规则生成的加密字符串,见下文

4.2 鉴权字符串生成

推流防盗链:
wsSecret = md5(pushSecretKey + "/live/" + cid + currentTime)
wsTime = currentTime

拉流防盗链:
playSecret = md5(currentTime + url + pullSecretKey)
playTime = currentTime
其中url"?"之前的字符串,而且要去掉协议,如推流地址:"http://flvtest2016.live.126.net/live/123231asdasdasdasdasd.flv?xxx=yyy",则url"flvtest2016.live.126.net/live/123231asdasdasdasdasd.flv"

上述描述中,pushSecretKey是用于计算推流防盗链的加密Key,pullSecretKey是用于计算拉流防盗链的加密Key,二者在用户开通推拉流防盗链功能后会由云信自动生成,如您没有自定义加密Key的需求,则无需对其改变。

4.3 鉴权方法

云信CDN边缘节点收到推流请求时做如下校验:

云信CDN边缘节点收到拉流请求时做如下校验:

5 自定义加密Key和有效时间

用户开通直播防盗链后,平台会为您生成一个用于计算防盗链鉴权串的加密Key(保证唯一性),并默认配置防盗链的有效时间为120分钟,如果您有自定义加密Key和有效时间的需求,可以用自定义的Key对平台默认Key进行替换,也可以缩短或延长防盗链的有效时间。

此外,用户还可以设置多个自定义的加密Key,如果这样做,平台保证使用不同加密Key的推拉流地址可以同时生效,这就为用户提供了加密Key替换时平滑过渡的能力。

自定义加密Key和有效时间尚不支持在用户后台设置,可联系客户经理配置。

×

反馈成功

非常感谢您的反馈,我们会继续努力做得更好。