视频防盗防播及图片加密
引用网址
提示:该功能可阻止其它网站直接使用EFV的M3U8链接进行播放使用。
可点击EFV
后台左侧 ⇒ 转码相关 ⇒ 防盗链/图片加密设置,进行相关设置。
在此处设置指定站点域名后,只允许m3u8
切片在该域名所建立的网站上播放,其它站点调用均会失败。
设置域名需加http(s)://
前缀,比如https://demo.efvcms.com
,且支持泛域名,比如https://*.efvcms.com
,即efvcms.com
的所有https
子域名都能使用;且多域名配置中间用|
分开,比如https://demo.efvcms.com|https://*.efvtest.com
,可设置无数个域名。
注意http://
只能给http://
域名引用,https://
只能给https
域名引用,如果你想给同一域名的http://
和https://
都使用,那么分别设置2
个即可,如http://demo.efvcms.com|https://demo.efvcms.com
。
TS禁止下载合并
提示:该功能屏蔽了绝大部分的下载工具,即禁止被这些工具下载合成M3U8。
可点击EFV
后台左侧 ⇒ 防盗链/图片加密设置,开启该功能即可。
TS切片伪装PNG图片
提示:该功能除了一些特殊用途外,还可以防止被一些工具直接下载合并。
可点击EFV
后台左侧 ⇒ 转码相关 ⇒ 转码设置,开启该功能即可。
时间戳+播放次数防盗链
提示:目前结合防盗、兼容性、对接难度来说,此防盗链算是最适合的。
可点击EFV
后台左侧 ⇒ 转码相关 ⇒ 防盗链/图片加密设置,相关设置项如下:
#时间戳+播放次数防盗链
开启防盗链的开关,开启后所有m3u8均无法直接访问,需根据规则组装获取可访问的m3u8链接才能正常访问。
#设置时间戳防盗链key值
防盗链对接逻辑的一部分,可随时修改,随时生效
#开启TS或伪装切片的时间戳防盗链验证
防盗链默认只会验证M3U8和TS加密的KEY文件,如果你想连切片也一起验证,则开启。
#开启时间戳防盗链ip验证
开启该功能后,当用户访问视频TS加密的key文件或切片文件时,会验证其ip地址是否和访问m3u8地址的ip一致,不一样会阻止访问,也就是禁止绕过m3u8访问切片。
#设置时间戳防盗链的json解析接口
可设置一到多个解析接口地址,用来解析m3u8链接,并生成可直接播放的新m3u8链接
对接原理
开启时间戳防盗链功能后,我们需要使用播放次数、过期时间戳、时间戳KEY
值和M3U8
链接进行组装加密,获取到一个可供播放的新KEY
,然后该M3U8
链接后面加上这个新KEY
值就可以正常播放了。
主要对接参数说明:
播放次数:比如我播放次数设置2,即请求2次M3U8链接后,会直接失效。
过期时间戳:比如我设置5分钟后过期,即5分钟后该M3U8链接直接失效。
如果访问M3U8
链接的时候,使用的新KEY
值不对,或者单ip
播放次数用完、时间戳已过期,都会提示无权限。
单独访问TS
加密的KEY
文件和切片文件的时候,使用的IP
和对应的M3U8
的IP
来源不一样,或新KEY
值不对,KEY
文件播放次数用完等,也会提示无权限。
返回信息
访问M3U8
无权限的时候默认会返回403
提示,如果你想返回一段视频,可以添加切片广告 ⇒ 传送门。
如果添加多个切片广告,则无权限的会随机返回其中一个切片广告视频。
对接说明
可通过自行对接 或 直接使用解析接口获取可访问的m3u8
链接,按需求选择即可,对接文档 ⇒ 传送门,然后自行开发对接。
自带的CMS
、苹果CMS
和爱影CMS
均已适配,且自带的CMS
开启该功能后会自动处理,苹果CMS
可前往发布到苹果CMS
文档获取对接文件 ⇒ 传送门,爱影CMS
可前往发布到爱影CMS
文档获取对接文件 ⇒ 传送门。
动态加密封面/截图
提示:该功能为动态处理,即服务器里面的图片并未加密,只是读取的时候给你加密,且开启和关闭均立即生效。
可点击EFV
后台左侧 ⇒ 转码相关 ⇒ 防盗链/图片加密设置,开启该功能;且不能同时开启图片转换txt文本
功能,不然txt文本
功能优先级会高于加密
。
开启图片加密后,基本上转码生成的封面、截图全部会被加密乱码,完全看不到任何实质内容,需要在前端使用特有的解密逻辑,方可正常显示。
这里提供一个简单的对接示例 ⇒ 传送门,并根据文档示例集成到自己的网站即可。
封面/截图动态转换txt文本
提示:该功能为动态处理,即服务器里面的图片并未处理,只是读取的时候给你转txt,且开启和关闭均立即生效。
可点击EFV
后台左侧 ⇒ 转码相关 ⇒ 防盗链/图片加密设置,开启该功能。
开启之后,程序会自动将封面/截图自动转换成txt
文本,且默认的截图和图片均会无法正常查看,直接请求会显示403 Forbidden
提示。
使用方法
我的图片链接为/videos/202104/16/60797eb23b54185df2317c5f/cover.jpg
,我直接将.jpg
换成.txt
就可以了。
比如/videos/202104/16/60797eb23b54185df2317c5f/cover.txt
,读取的时候会自动转换成txt
文本。
且原有.jpg
地址会返回403 Forbidden
提示,既不会显示图片了,然后直接在前端使用base64
解密调用。
这里提供一个简单的对接示例 ⇒ 传送门,并根据文档示例集成到自己的网站即可。
HLS双重防盗链
提示:该防盗链属于里面盗取难度最大的,几乎不可能被盗,由于国产浏览器问题,推荐专注国外用户的可以使用。
可点击EFV
后台左侧 ⇒ 转码相关 ⇒ 防盗链/图片加密设置,设置防盗链KEY
值,且设置自动开启,留空立即关闭。
然后前往转码设置
,开启TS
加密,也就是需和TS
加密搭配一起使用才生效,即该功能仅仅对TS
加密的M3U8
有效。
加密原理
该功能参考保利威视的防盗链策略,EFV
系统对M3U8
的KEY
文件链接和KEY
文件内容进行双向加密,通过修改hls.js
文件来达到自己的解密逻辑,做到双向对称加密和解密。
再将hls.js
文件解密的逻辑通过JS
混淆加密的方式保护,并魔改hls.js
,实现了绑定域名调用,使其防盗链防下载防合并防破解的功能极其强大。
比如我开启并设置HLS
双重防盗链后,在没有解密的情况下,读取一个M3U8
文件,内容如下:
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:5
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-KEY:METHOD=AES-128,URI="http://192.168.3.16?token=FEfKlXoXbFF7xr7yPAK2k81G5kZesZEQyAlqDPc67GIS1VUVAZfO0euFgQMxjRpAplZpOxuv/to="
#EXTINF:4.800000,
indexEccdE0fc0ACcdC0A.ts
#EXTINF:4.360000,
indexf81cggd7A0c0905E.ts
#EXTINF:3.320000,
index31696Ba7gab3CA3d.ts
会发现TS
加密的key
文件地址为本地地址,意味着读取不到key
文件,也就是播放不了该M3U8
。
如果在我们已经对接过解密的网站播放,通过抓包获取到了key
文件链接,并获取到key文件内容,依然不能下载,因为key
文件内容也会加密,也就是说的双重加密,总之盗取难度极大。
使用说明
由于国产浏览器会替换你的解密hls.js
文件,会导致解密失效,所以专注国外用户的可以使用,国内不推荐。
需要使用的可自行查看文档获取解密hls.js
文件 ⇒ 传送门,并根据文档教程集成到自己的网站即可。