如何保障視頻內容的安全,不被盜鏈、非法下載和傳播,阿里雲視頻點播已經有一套完善的機制保障視頻的安全播放: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