做在线视频是不是经常遇到盗链的情况,好不容易花钱租个视频服务器,自己没几个流量,却被盗链的搞去大部分宽带成本,烧钱烧的心疼又无可奈何,只能任人宰割。

客户的利益就是我们的利益,作为有担当的软件开发商,我们随时都在考虑为用户解决这个问题。于是就有了专门的这篇防盗解说。

注意使用商业cdn(比如阿里、腾讯、百度这种卖流量)又想防盗,可以使用cdn域名做ts域名m3u8域名解析到PPVOD服务器。ts域名的使用办法参考:https://www.ppvod.cc/487.html

如果不需要防盗功能请清空全部设置和关闭设置项。

该系统的防盗有两种机制:一是给文件后面加上sign认证(指定防盗格式+有效期+密钥+客户端Ip验证,密钥的算法参考:https://www.ppvod.cc/259.html),另外一个机制是使用白名单(文件地址判断+来路判断+禁止空来路),两套机制配合使用形成天衣无缝的防盗。

设置项解释:

1649333292-bfe53d29ff73e02

防盗格式:

先指定需要防盗的后缀名

1649333285-f5730b2e3c56319

失效时间:

1649333289-5d0a6078f8756c5

sign密钥的有效期,超过这个有效期就会失效,如果你的视频比较长,建议设置时间长点,不然用户还没播放完,密钥失效以后ts就不能播了,用户必须得刷新视频才能继续播放。

1649333286-f04a457c0b684fb

如果视频打开超过10分钟就不能播放,必须刷新才能播放。

防盗密钥:

产生密钥的混淆字符,切记不要使用符号,长度不超过16位。

防盗格式、有效期、密钥,三项全部设置才能产生正确的sign,以下是在浏览器里面的结果:

1649333286-bdc88f7573ce24c

如果你启用了防盗功能,必须在前端网页或app使用防盗密钥算法才能正常打开文件,比如:/20190904/ubATBCor/index.m3u8?sign=422669b591323dde0fb59917d2ccc97782f3fd,密钥的算法参考:https://www.ppvod.cc/259.html

白名单:

整个视频系统的文件在白名单的域名才能访问,如果“来路”和“视频地址”的域名不是你白名单的域名,你可以设置一个m3u8广告地址给盗链的网站播放。

禁止来路为空:

此项必须配合白名单使用。任何白名单外的访问来路都会被拒绝,加强白名单防盗效果。

ip验证:

PPVOD服务器端和你的前端网页(app)共同验证用户ip是否一致,否则拒绝提供访问,使用此功能,需要在你的前端密钥算法里面获取终端用户的ip地址,

比如php的代码:

$ip=get_real_ip();

$sign=bin2hex(aes128Encrypt(‘ppvod’,”timestamp=”.$time.”&ip=”.$ip));//ppvod改为你自己的防盗密钥

其中的ip就需要你的程序获取用户的网络ip,如果你无法获取就不能打开此设置项。

此方法可以禁止a用户把获取到的视频地址转发给其他用户播放,要想正常播放你的视频,必须通过你的前端获取密钥才能播放。

举个例子,比如a用户在浏览器通过网站获取你正常的m3u8+sign地址,这时候他想把这一串地址http://localhost:2100/20220305/Cau2txVM/index.m3u8?s=b063bc7add96&t=1646542374387&r=v22uwQS4&v=yhuO38dcbab0&k=2a8779ba7024199b&f=84c0d6df86a996f发给别人使用,PPVOD会判断联另外一个用户的IP跟当前密钥的IP一致,如果不一致则拒绝访问。这也能杜绝使用解析工具获取你的m3u8+sign给别人播放。

应用示范:

1、不需要防盗的土豪模式,如果你使用btcdn自建cdn网络,这边也可以完全关闭防盗,把防盗任务交给btcdn

1649333287-0b3a2a41aac024f

2、m3u8防盗,ts使用商业cdn,如阿里、腾讯、百度等

域名设置方法

1649333288-62bfc1e34580dc5

防盗设置方法

1649333289-229cfb779710341

*注意使用cdn的情况不要勾选“智能屏蔽”以防把你的cdn服务器被屏蔽了,如果你cdn系统是自己构建的,也可以勾选“智能屏蔽”,把自己的cdn服务器ip加到“白名单”里面就可以了。

3、菜鸟模式

1649333291-0c1dd0451746b15

你还可以有更多的防盗组合,在理解每个设置项的基础上进行设置,你就可以实现完美的防盗效果。

以上防盗适用于任何网页播放器、app等各类终端。