文档首页/ 视频点播 VOD/ 最佳实践/ 通过防盗链控制音视频的播放权限
更新时间:2024-10-18 GMT+08:00

通过防盗链控制音视频的播放权限

场景说明

为对分发的音视频进行播放权限控制,点播服务提供了防盗链功能。开启后,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所示。

图1 Key防盗链实现原理

流程说明如下所示:

  1. 租户在点播控制台开启Key防盗链功能,并配置误差允许时间、算法等。
  2. 点播服务将配置的密钥值等下发到CDN节点中。
  3. 租户通过点播服务获取到点播媒资的鉴权URL。
  4. 观众通过租户提供的鉴权播放URL向CDN请求视频播放。
  5. CDN根据播放URL中携带的鉴权信息校验请求的合法性,仅校验通过的请求会被允许。

配置Referer防盗链

先配置Referer防盗链,限制请求来源,使点播资源得到最基本的安全保障。

当前Referer防盗链配置不支持带端口。

  1. 登录视频点播控制台
  2. 在左侧导航栏中,选择“域名管理”,进入域名管理界面。
  3. 单击域名右侧“配置 ”,在“防盗链”页签单击“Referer防盗链”。
  4. 在弹出的配置框中打开“开关”,并配置相关参数。

    图2 Referer防盗链配置
    • 类型:支持黑名单和白名单模式。
      • Referer黑名单:表示黑名单内的域名不允许访问点播资源,其它可以访问。若同时勾选了“包含空Referer”,则表示不允许HTTP Header中Referer为空的请求。
      • Referer白名单:表示白名单内的域名允许访问点播资源,其它不可以访问。若同时勾选了“包含空Referer”,则表示允许HTTP Header中Referer为空的请求。
    • 规则:名单详情,最多支持4级域名,最多支持100条,以英文“;”分隔。域名、IP地址可混合输入,支持泛域名添加。域名前不能带协议名(http://和https://)。

      示例:www.example.com;*.test.com;192.168.0.0

  5. 单击“确定”,完成配置。

    大约需要3-5分钟,Referer防盗链才生效。

配置Key防盗链

为点播资源配置Key防盗链,通过鉴权URL的时效性来进一步加强点播资源的安全。

  1. 登录视频点播控制台
  2. 在左侧导航栏中,选择“域名管理”,进入域名管理界面。
  3. 单击域名右侧“配置 ”,在“防盗链”页签选择“Key防盗链”。
  4. 在弹出的配置框中打开“防盗链开关”,并配置相关参数。

    图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。

  5. 单击“确定”,完成参数配置。
  6. 提交工单申请审核,提交的信息需要包含配置的域名,及表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防盗链
    1. 登录视频点播控制台,在左侧导航树中选择“音视频管理”。
    2. 在某个音视频行单击“管理”,选择“播放地址”页签,获取播放地址。
      图4 播放地址

      其中“地址”列为原始播放地址,单击可获取鉴权播放地址。

    3. 在播放器端分别播放原始播放地址和鉴权播放地址,若原始播放地址播放失败,鉴权播放地址播放成功,则表示Key防盗链生效。