阿里雲 Aliplayer高級功能介紹(八):安全播放

基本介紹

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

75cb1b9ab482c09cc2fbb9b5522e45d32e9d1975

更多詳細內容查看點播內容安全播放,H5的Aliplayer對於上面的安全機制都是支持的,可是也有一些限制。html

訪問限制

訪問限制主要是阿里雲視頻雲提供的安全訪問能力, 只須要雲端配置, 播放器無需作額外的事情,而且拒絕訪問的緣由會經過「X-Tengine-Error」Response Header返回,Http請求的錯誤的Code爲403。java

開啓Referer防盜鏈後,若是Referer Header的值不是控制檯設置的值時,返回「denied by Referer ACL」 錯誤跨域

3991707b31a9483f6ff89fd48dd6c510d46664fc

Referer首部包含了當前請求頁面的來源頁面的地址,即表示當前頁面是經過此來源頁面裏的連接進入的,還要注意如下兩種狀況下,Referer不會被髮送:瀏覽器

  • 來源頁面採用的協議爲表示本地文件的 "file" 或者 "data" URI;
  • 當前請求頁面採用的是非安全協議,而來源頁面採用的是安全協議(HTTPS)。

好比下面視頻頁面直接'file'的方式打開,是能夠播放的:緩存

caed6822e1e311ba7fc266047e82c60ce22221a6

要避免上面的兩個遺漏,在啓用Referer防盜鏈後,不要忘記禁止容許空的Referer,爲了更加的安全,切記去掉容許空Referer的選擇:安全

26f90562550524b08ed9c64693c1fc4299b832bc

播放中心鑑權

播放地址長期有效會更容易的非法擴散傳播,視頻點播提供的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

997d3d8815f8d85cc9cbcc22e8ad364e65e3f83c

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容易被僞造,若是可以加上業務方的一些信息作業務方的二次鑑權,對盜鏈的非法請求的判斷更加精確,過程以下圖:

b27a5b7c1d7a226ffd0d4880c2b0ab9641820595

  • 二次鑑權是指點播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>十一、Edge

iOS不支持

Android部分支持,依賴於瀏覽器是否支持MSE

HLS的標準加密

Chrome、Safari、Firefox、 IE>十一、Edge

全支持

標準DRM

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加載解析的時候和執行到核心方法時候 。

若是用戶打開開發者工具,打開頁面時會中止加載變爲一個空白頁面, 以下圖:

2f013a84cc7250cb9b86b0526bb1ef62dc0b73ac

注意:關閉開發者工具頁面仍是刷新不出來的,須要在新的tab裏從新打開頁面

如何啓用

經過引入Aliplayer提供的javascript文件開啓防調試模式,考慮到在開發過程當中的調式, 用戶能夠在發佈的產品中才引入,Javascript文件的地址:

<script src="https://g.alicdn.com/de/prismplayer/2.8.0/hls/aliplayer-vod-anti-min.js"></script>

 

原文連接 更多技術乾貨 請關注阿里云云棲社區微信號 :yunqiinsight  

相關文章
相關標籤/搜索