通过防盗链控制音视频的播放权限
场景说明
为对分发的音视频进行播放权限控制,点播服务提供了防盗链功能。开启后,CDN会对所有播放请求中携带的关键信息进行校验,仅校验通过的请求会予以响应,其它非法的访问将直接返回403。防盗链方案中包含Referer防盗链和Key防盗链。
Referer防盗链是基于HTTP协议支持的Referer机制实现的,通过播放请求中携带的Referer字段识别请求来源。配置黑名单或白名单,CDN将根据名单对请求来源进行过滤,从而达到最基本的访问控制的目的。Referer防盗链具有配置便捷,无需额外开发,快速生效等优势,适用于音视频主要在web端引用的场景。
由于HTTP Header的内容可伪造,Referer防盗链只能达到最基本的保护,安全性不高。所以还可以采用Key防盗链方案,通过鉴权播放URL保障点播资源的安全。由于鉴权的Key值具有时效性,所以适用于对媒资安全要求比较高的场景。
本示例中,开启Referer防盗链,只允许白名单中的域名访问视频文件,然后通过Key防盗链生成鉴权播放地址。
实现原理
Referer防盗链的实现原理比较简单,在点播控制台配置了白名单或黑名单后,点播服务会将这份名单分发到CDN中。当CDN接收到资源请求时,会根据这个名单来识别请求是否合法,若合法,则访问请求的资源,否则拒绝并返回403。
Key防盗链是视频点播的加速节点与点播源站联合实现的,比Referer防盗链更为安全可靠的一种防盗播方案。Key防盗链的实现过程如图1所示。
流程说明如下所示:
- 租户在点播控制台开启Key防盗链功能,并配置误差允许时间、算法等。
- 点播服务将配置的密钥值等下发到CDN节点中。
- 租户通过点播服务获取到点播媒资的鉴权URL。
- 观众通过租户提供的鉴权播放URL向CDN请求视频播放。
- CDN根据播放URL中携带的鉴权信息校验请求的合法性,仅校验通过的请求会被允许。
配置Referer防盗链
先配置Referer防盗链,限制请求来源,使点播资源得到最基本的安全保障。
当前Referer防盗链配置不支持带端口。
- 登录视频点播控制台。
- 在左侧导航栏中,选择“域名管理”,进入域名管理界面。
- 单击域名右侧“配置 ”,在“防盗链”页签单击“Referer防盗链”。
- 在弹出的配置框中打开“开关”,并配置相关参数。
图2 Referer防盗链配置
- 类型:支持黑名单和白名单模式。
- Referer黑名单:表示黑名单内的域名不允许访问点播资源,其它可以访问。若同时勾选了“包含空Referer”,则表示不允许HTTP Header中Referer为空的请求。
- Referer白名单:表示白名单内的域名允许访问点播资源,其它不可以访问。若同时勾选了“包含空Referer”,则表示允许HTTP Header中Referer为空的请求。
- 规则:名单详情,最多支持4级域名,最多支持100条,以英文“;”分隔。域名、IP地址可混合输入,支持泛域名添加。域名前不能带协议名(http://和https://)。
- 类型:支持黑名单和白名单模式。
- 单击“确定”,完成配置。
大约需要3-5分钟,Referer防盗链才生效。
配置Key防盗链
为点播资源配置Key防盗链,通过鉴权URL的时效性来进一步加强点播资源的安全。
- 登录视频点播控制台。
- 在左侧导航栏中,选择“域名管理”,进入域名管理界面。
- 单击域名右侧“配置 ”,在“防盗链”页签选择“Key防盗链”。
- 在弹出的配置框中打开“防盗链开关”,并配置相关参数。
图3 配置Key防盗链
表1 参数说明 参数
描述说明
密钥值
即Key值,单击“生成”,可自动生成符合格式的密钥值。
误差允许时间
表示当前防盗链有效时间,默认为120分钟。
示例:若鉴权URL生成时间为1573806090(2019/11/15 16:21:30),配置的“误差允许时间”为120分钟,则鉴权URL的失效时间为2019/11/15 18:21:30。
旧key的失效时间
采用新Key时,旧Key值的失效时间,从新Key生效时开始计算,默认60分钟后失效。
示例:若新Key生效时间为2019/11/15 16:21:30,配置的“旧Key的失效时间”为60分钟,则旧鉴权URL的真正失效时间为2019/11/15 17:21:30。
算法
加密算法,支持ABCD四种算法,默认为算法D。选择的算法不同,生成的鉴权URL也是不同的,具体的生成规则可参考Key防盗链。
说明:算法ABC暂不支持HLS和DASH播放场景,建议使用算法D。
- 单击“确定”,完成参数配置。
- 提交工单申请审核,提交的信息需要包含配置的域名,及表1中的信息。
审核通过后Key防盗链功能才会生效。若修改了Key防盗链的配置,也需重新提交工单审核。
验证防盗链功能
- 验证Referer防盗链
在Referer防盗链中配置的referer白名单为“www.huaweicloud.com”,且不勾选“不包含空Referer”。在“http://www.example.com/test/test.html”网页中引用点播服务中的视频文件“https://1280.cdn-vod.huaweicloud.com/input/1.mp4”,访问该网页并播放视频,若播放失败则表示Referer防盗链生效。
- 验证Key防盗链
- 登录视频点播控制台,在左侧导航树中选择“音视频管理”。
- 在某个音视频行单击“管理”,选择“播放地址”页签,获取播放地址。
图4 播放地址
其中“地址”列为原始播放地址,单击可获取鉴权播放地址。
- 在播放器端分别播放原始播放地址和鉴权播放地址,若原始播放地址播放失败,鉴权播放地址播放成功,则表示Key防盗链生效。