阿里云 Aliplayer高级功能介绍(八):安全播放

基本介绍
如何保障视频内容的安全,不被盗链、非法下载和传播,阿里云视频点播已经有一套完善的机制保障视频的安全播放:

更多详细内容查看点播内容安全播放,H5的Aliplayer对于上面的安全机制都是支持的,但是也有一些限制。

访问限制
访问限制主要是阿里云视频云提供的安全访问能力, 只需要云端配置, 播放器无需做额外的事情,并且拒绝访问的原因会通过“X-Tengine-Error”Response Header返回,Http请求的错误的Code为403。

开启Referer防盗链后,如果Referer Header的值不是控制台设置的值时,返回“denied by Referer ACL” 错误

Referer首部包含了当前请求页面的来源页面的地址,即表示当前页面是通过此来源页面里的链接进入的,还要注意以下两种情况下,Referer不会被发送:

来源页面采用的协议为表示本地文件的 "file" 或者 "data" URI;
当前请求页面采用的是非安全协议,而来源页面采用的是安全协议(HTTPS)。
比如下面视频页面直接‘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错误,比如:

Aliplayer提供了authTimeout参数用户指定鉴权的有效期,默认值为2小时, 用户可以修改这个值,但是不要修改的太小,避免在播放过程中过期,而导致播放失败。

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容易被伪造,如果能够加上业务方的一些信息做业务方的二次鉴权,对盗链的非法请求的判断更加精确,过程如下图:

二次鉴权是指点播CDN将用户的请求透传到客户的鉴权中心,由客户自己判定该请求是否合法,CDN根据客户的判断结果执行相应动作:允许或拒绝访问。
二次鉴权需要客户自己开发和部署鉴权中心,该鉴权中心的域名如果同时在 CDN上面加速,可以按照一定规则缓存客户的鉴权结果,以减轻客户鉴权中心的压力。点播CDN会默将把用户请求的 headers 和 request_uri 透传到客户自定义的鉴权中心,并根据鉴权中心返回的结果执行相应的动作。
Aliplayer会把用户播放域名下面的cookie值,透传到客户的鉴权中心,由客户自己判定该请求是否合法。
启用Cookie的Secure和HttpOnly标记,让cookie更安全。 标记为 Secure 的Cookie只应通过被HTTPS协议加密过的请求发送给服务端,从 Chrome 52 和 Firefox 52 开始,不安全的站点(Http:)无法使用Cookie的 Secure 标记。 标记为HttpOnly的Cookie,通过JavaScript的 Document.cookieAPI无法访问带有 HttpOnly 标记的Cookie,它们只应该发送给服务端,避免跨域脚本 (XSS) ***。
视频加密
防盗链的安全机制能有效保障用户的合法访问,但是在用户合法获取播放地址,将视频本地,进而实现二次分发。因此,防盗链方案对于视频版权保护是远远不够的。无法保护视频文件的内容。Aliplayer支持了三种内容的加密方式:阿里云加密、HLS的标准加密、标准DRM, 浏览器支持情况:

加密方式
PC端
移动端
阿里云加密
Chrome、Safari、Firefox、
IE>11、Edge
iOS不支持
Android部分支持,依赖于浏览器是否支持MSE
HLS的标准加密
Chrome、Safari、Firefox、 IE>11、Edge
全支持
标准DRM
Google Widevine: Chrome、Firefox支持
微软 Playready:IE>11、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&gt;

原文地址:http://blog.51cto.com/14031893/2347262

时间: 2024-10-09 01:10:09

阿里云 Aliplayer高级功能介绍(八):安全播放的相关文章

阿里云 Aliplayer高级功能介绍(三):多字幕

基本介绍 国际化场景下面,播放器支持多字幕,可以有效解决视频的传播障碍难题,该功能适用于视频内容在全球范围内推广,阿里云的媒体处理服务提供接口可以生成多字幕,现在先看一下具体的效果: WebVTT格式介绍 多字幕现在支持HLS的格式,后期会去实现Dash格式的支持. 字幕文件 字幕的内容使用WebVTT的格式,更多的关于WebVTT可以参考WebVTT 格式如下: WEBVTT 00:00:09.960 --> 00:00:12.600 Argentina was among the found

阿里云 Aliplayer高级功能介绍(六):进度条标记

基本介绍Aliplayer在进度条上提示时间和缩略图功能外,还可以进行视频内容的提示打点,当然不止是进度条上显示打点的内容,还提供一组接口,方便用户进行打点时间和内容的获取, 基本UI如下图所示: 接口和属性介绍播放器提供了progressMakers属性,是一个数组类型,每一条记录包含offset时间和text打点的内容,还可以包含其他属性,此属性用于告诉播放器进度条打点记录,记录内容属性说明: 名称 类型 说明offset Number 打点的视频偏移时间,单位:秒text String 打

阿里云 Aliplayer高级功能介绍(七):多分辨率

基本介绍网络环境比较复杂.网速不稳定,Aliplayer提供了多分辨率播放的模式,用户可以手工切换分辨率和播放器选择最优分辨率,基本UI如下: 66ccc596257a5db1d0f106b57454e14da6a8f61e Source模式source的方式指定多个清晰度的地址,这个模式在直播场景下使用的比较多,阿里云直播服务可以提供多码率的播放流地址,详细请参考:视频直播转码.Aliplayer提供了下面清晰度的对应关系: Code TextOD 原画FD 流畅LD 标清SD 高清HD 超清

阿里云 Aliplayer高级功能介绍(九):自动播放体验

基本介绍 经常会碰到客户询问,为什么我设置了autoplay为true,但是没有自动播放,每次都要向客户解释这个是浏览器从用户体验角度考虑做的限制,客户会继续询问那我要怎么做? 针对这个问题Aliplayer也专们做过优化,提供一些方式让客户能更好的处理这种情况. 现象描述 有声音视频无法自动播放这个在移动端上一直都是这个限制,桌面版的Safari在2017年的11版本也宣布禁掉带有声音的多媒体自动播放功能,Chrome也在2018年4月份发布的66版本也正式关掉了声音自动播放,也就是说通过H5

阿里云 Aliplayer高级功能介绍(五):多语言

基本介绍Aliplayer默认支持中文和英文,并且依赖于浏览器的语言设置自动启用中文或英文资源, 除了支持这两种资源外,还提供自定义语言的形式,支持其他国际语言,另外Aliplayer还支持点播服务的多地域,可以支持VideoId的方式播放东南亚和欧洲的视频资源,英文版本播放器: 语言设置属性Aliplayer提供language属性用于指定语言,此属性的优先级高于浏览器的语言设置,默认值为空,代码: var player = new Aliplayer({id: "player-con&quo

Virtualbox 多重加载 高级功能介绍

1. 简介 对于虚拟机,相信对大家来说都不陌生,尤其对一个IT行业的人来讲.让你在现有的操作系统上不需要从新装系统和购买新机器就可以使用其他类型的操作系统.现在主流的虚拟就有VMWare和Virtualbox,virtualbox体系小,也比较稳定,还有一些独到的高级功能比较受用户的青睐. 对于虚拟机中的操作系统,我们大多时候都是用来做实验或者其他用途,但总结起来一句通俗的话,那就是用来折腾的.对于经常使用虚拟机的人来说,可能经常需要将虚拟机中的系统还原到之前的状态,搞不好还需要重新安装.有人会

zabbix一些高级功能介绍

根据上篇配置的环境,接下来说明在zabbix agent上执行远程命令是如何完成的. 远程命令受到一些限制: (1)在agent执行远程命令必须给zabbix用户定义sudu规则: (2)不支持active模式的agent (3)不支持代理模式 (4)命令长度不得超过255个字符 (5)可以使用宏 (6)zabbix-server仅执行命令,而不关心命令是否执行成功 修改一下agent的配置文件,vim /etc/zabbix/zabbix_agentd.conf  把EnableRemoteC

阿里云短信功能php

1. 引入文件: https://help.aliyun.com/document_detail/53111.html?spm=a2c1g.8271268.10000.99.5a8ddf25gG0wWP 2. 短信文档: https://help.aliyun.com/document_detail/101300.html?spm=a2c4g.11174283.3.2.19fe2c42UM3xu2 原文地址:https://www.cnblogs.com/init-007/p/10986626.

阿里云新功能:EIP高精度实时互联网流量秒级监控

大家好,很高兴向大家介绍一下高精度秒级监控 很高兴的告诉大家,阿里云弹性公网IP即日起支持高精度秒级监控了.而令人激动的是,这可能是史上最好用的实时业务流量监控功能,没有之一. 众所周知,弹性公网IP(EIP)承载了海量的互联网BGP流量,这些流量实时性要求很高,对公网带宽的质量要求也很高.如果公网带宽跑满未及时扩容,很容易出现业务流量限速丢包,进而引发客户端访问质量恶化的和用户体验的直线下降. 对于极度关注和珍视用户体验的互联网内容提供方,是十分在意互联网流量的实时监控的.如果业务流量超过预设