如何保障视频内容的安全,不被盗链、非法下载和传播,阿里云视频点播已经有一套完善的机制保障视频的安全播放:javascript
更多详细内容查看点播内容安全播放,H5的Aliplayer对于上面的安全机制都是支持的,可是也有一些限制。html
访问限制主要是阿里云视频云提供的安全访问能力, 只须要云端配置, 播放器无需作额外的事情,而且拒绝访问的缘由会经过“X-Tengine-Error”Response Header返回,Http请求的错误的Code为403。java
开启Referer防盗链后,若是Referer Header的值不是控制台设置的值时,返回“denied by Referer ACL” 错误跨域
Referer首部包含了当前请求页面的来源页面的地址,即表示当前页面是经过此来源页面里的连接进入的,还要注意如下两种状况下,Referer不会被发送:浏览器
好比下面视频页面直接'file'的方式打开,是能够播放的:缓存
要避免上面的两个遗漏,在启用Referer防盗链后,不要忘记禁止容许空的Referer,为了更加的安全,切记去掉容许空Referer的选择:安全
播放地址长期有效会更容易的非法扩散传播,视频点播提供的URL鉴权可经过生成动态的加密URL(包含权限验证、过时时效等信息)来区分合法请求,以达到保护视频资源的目的。固然用户首先得去点播服务开启URL鉴权,鉴权的地址格式:微信
http://qt1.alivecdn.com/olympic/cctv6d.flv?auth_key=1531045067-0-0-86c4b15261ea820b834c111b601acda3
播放域名开启鉴权后会在视频URL地址后添加auth_key的query string参数, 若是缺乏auth_key参数或有效期过时,在访问视频地址时会抛403错误,好比:cookie
Aliplayer提供了authTimeout参数用户指定鉴权的有效期,默认值为2小时, 用户能够修改这个值,可是不要修改的过小,避免在播放过程当中过时,而致使播放失败。ide
var player = new Aliplayer({ id: "player-con", source: "//common.qupai.me/player/qupai.mp4", width: "100%", height: "500px", autoplay: true, vid:"6bd7ad2a482e4829b726819d2168621d", playauth : "eyJTZWN1cml0eVRva2VuIjoiQ0FJUzN3SjFxNkZ0NUI", authTimeout:3600 //单位毫秒 }, function (player) { console.log("播放器建立成功"); });
阿里云的播放中心鉴权,在有效期内视频地址均可以被使用,而且Referer容易被伪造,若是可以加上业务方的一些信息作业务方的二次鉴权,对盗链的非法请求的判断更加精确,过程以下图:
防盗链的安全机制能有效保障用户的合法访问,可是在用户合法获取播放地址,将视频本地,进而实现二次分发。所以,防盗链方案对于视频版权保护是远远不够的。没法保护视频文件的内容。Aliplayer支持了三种内容的加密方式:阿里云加密、HLS的标准加密、标准DRM, 浏览器支持状况:
加密方式 |
PC端 |
移动端 |
Chrome、Safari、Firefox、 IE>十一、Edge |
iOS不支持 Android部分支持,依赖于浏览器是否支持MSE |
|
Chrome、Safari、Firefox、 IE>十一、Edge |
全支持 |
|
Google Widevine: Chrome、Firefox支持 微软 Playready:IE>十一、Edge 支持 |
iOS不支持 Chrome for Android部分支持,依赖Android设备 |
阿里云加密和标准DRM的安全性差很少,比HLS的标准加密方式的安全性高,可是若是须要考虑移动端,当前只能选择HLS的标准加密方式。
视频加密的详细介绍参考:点播内容安全机制
Aliplayer播放加密视频和普通方式没有区别,不用作多余属性的设置,只须要经过videoId的播放方式集成播放器播放视频,好比:
var player = new Aliplayer({ id: "player-con", source: "//common.qupai.me/player/qupai.mp4", width: "100%", height: "500px", autoplay: true, vid:"6bd7ad2a482e4829b726819d2168621d", playauth : "eyJTZWN1cml0eVRva2VuIjoiQ0FJUzN3SjFxNkZ0NUI" }, function (player) { console.log("播放器建立成功"); });
视频是私有加密的时候不但愿用户调试咱们的核心代码, Aliplayer安全加固添加了防调试的代码,主要包含两个阶段的:js加载解析的时候和执行到核心方法时候 。
若是用户打开开发者工具,打开页面时会中止加载变为一个空白页面, 以下图:
注意:关闭开发者工具页面仍是刷新不出来的,须要在新的tab里从新打开页面
经过引入Aliplayer提供的javascript文件开启防调试模式,考虑到在开发过程当中的调式, 用户能够在发布的产品中才引入,Javascript文件的地址:
<script src="https://g.alicdn.com/de/prismplayer/2.8.0/hls/aliplayer-vod-anti-min.js"></script>
原文连接 更多技术干货 请关注阿里云云栖社区微信号 :yunqiinsight