Web视频播放与数据安全

HTML5 的 video 标签的安全性

H5的video/audio标签可以⽅便的播放⾳视频,只需要把资源的链接设置为src属性即可。但是这种⽅式也把资源的链接暴露了出来,⽤户可以随意下载、播放⾳视频数据。那么如何提⾼媒体资源的安全性呢?

保证媒体资源的数据安全

Referer 防盗链

浏览器内部去下载视频数据,归根到底是发起了⼀个HTTP请求,那么就可以围绕HTTP协议请求做⼀些功课。
Referer 是HTTP请求 header 的⼀部分,浏览器向web服务器发送请求的时候会在header中带上当前的地址,那么服务端可以通过⿊⽩名
单控制哪些地址的⽹⻚可以播放这个视频。⽬前云存储服务商⼤部分都⽀referer防盗链功能。
但是客户端可以伪造这个值,所以Referer不是绝对可信的,只能作为辅助⼿段。

Blob URL

通俗的讲 Blob URL 也是⼀种URL,和⼀般的http开头的URL相⽐,它是blob:// 开头的。它是浏览器维护在内存的⼀堆⼆进制数据,是⼀
种本地的URL。即便⽤户拿到了这个URL,也没办法下载和播放。

  • 关于Blob URL的API
// 创建
objectURL = URL.createObjectURL(object); // 参数类型为 File、Blob 或者 MediaSource
// 回收
URL.revokeObjectURL(objectURL);

有了Blob URL,就可以通过HTTP先把视频下载到浏览器本地,然后转为Blob URL使⽤。然⽽视频下载的过程依然会暴露视频⽂件的真实地址,那么如何进⼀步提⾼安全性呢?

视频⽂件加密

如果视频⽂件是加密存储的,那么就算有⼈下载了视频,甚⾄攻⼊服务器拿到了视频⽂件,⽆法正常播放也是徒劳的。

视频⽂件加密算法选择

加密算法主要分为两⼤类,⼀种是可逆加密算法、⼀种是不可逆加密算法,可不可逆的区别是能否从加密后的密⽂还原成明⽂,能还原的就是可逆算法,否则就是不可逆。⽽对于可逆性算法⼜分为对称性加密和⾮对称性加密,区别的关键在于加密和解密的密钥是否相同。

  • 哈希/摘要
    常⽤的哈希算法有MD5、SHA系列等等,特点是不可逆、数据完整性敏感
  • 对称性加密
    主要有DES、3DES、AES等标准,AES是DES的替代,现在常⽤的是AES。
  • ⾮对称性加密
    主要使⽤的是RSA,有两种密钥,公钥是加密⽤的,私钥是解密⽤的。
    对于加密⼤的⽂件⽽⾔适合选择AES加密。
AES 加密
  • 密钥
    AES128、AES192、AES256 , 数字对应密钥的⻓度(bit)
    密钥可随机⽣成,解密时必须使⽤加密的密钥才能成功解密
  • 填充
    填充⽅式是AES的⼀个重要参数,加密和解密时填充⽅式必须⼀致。
    要想了解填充的概念,我们先要了解AES的分组加密特性.
    AES
    先把全量的明⽂分成⼀个个独⽴的明⽂块,⼀块的⻓度和密钥的⻓度⼀致。再把每⼀块使⽤
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值