防止通过检查元素下载 html5 视频

Posted

技术标签:

【中文标题】防止通过检查元素下载 html5 视频【英文标题】:prevent html5 video from being downloaded through inspect element 【发布时间】:2015-10-25 04:11:24 【问题描述】:

我们的项目中有一个模块,可以选择上传 mp4 视频,我们使用 html5 视频标签播放器来播放视频。

问题我们面临的是视频的隐私。当时用户很容易通过右键另存为视频或从 src 中获取 url 来下载我们的文件检查元素的视频标签。 为此,我进行了很多研究,并通过 youtube 视频了解了有关 blob url 的想法,这些视频无论如何都无法访问。 我试图研究 blob-url,为我的视频 url 创建了一个,但它们仍然可以访问并且可以轻松下载。像 youtube blob-url 它不起作用。 我还研究了这个问题question第一个答案,通过它我了解了关于缓冲视频的youtube机制以及youtube的inspect元素中显示的blob url是如何欺骗的。

最重要的是,我想知道我们如何欺骗我们的网站 url,以便没有人可以通过检查元素下载它。我们有可能这样做吗?怎么做?任何与此相关的链接请与我分享。我已经尝试学习了很多,但仍然缺少一些东西。

youtube 实际上遵循什么机制来创建 blob url 并保存其视频?

【问题讨论】:

目标受众是谁?我有根据的猜测是,大多数人(阅读非程序员或非 IT 人员)不知道 inspect element 的用途并且永远不会全部使用。 仍然可以通过第三方浏览器插件从 youtube 下载视频。这些插件在 Firefox 中有效,但在 Chrome 中通常无效。 为了更安全,我们希望像 youtube 一样工作 如果您可以播放视频,那么有人可以窃取它,除非您使用 HTML5 视频加密媒体扩展 (EME) 来提供您的内容。 如果您只是需要混淆 URL 以阻止其他人找到它,那么您可以编写一个处理程序来执行类似 blog.offbeatmammal.com/post/2006/06/30/… 的操作(但使用更新的语言!) 【参考方案1】:

由于您的视频必须到达用户设备,因此如果用户愿意,您实际上无法阻止用户截取和存储文件。

此问题的典型解决方案是对文件进行加密,并仅与您要查看的人共享加密视频的密钥。 “坏”用户仍然可以下载视频文件,但如果没有正确的密钥,将无法播放。

您如何获得用户的密钥可以非常简单(您通过一些单独的通信渠道,如电子邮件直接告诉他们)或使用某种 DRM 方法更复杂。

DRM 存在争议(请参阅下面链接中的 Firefox 讨论),但它正在与 HTML5 EME(加密 Meida 扩展)一起被纳入标准,因此变得越来越主流。 EME 本质上允许浏览器请求浏览器/设备中的受信任(由视频制作者)元素来解码和播放加密视频。在下面的第二个链接中查看 EME 的详细概述。

https://blog.mozilla.org/blog/2015/05/12/update-on-digital-rights-management-and-firefox/ http://www.html5rocks.com/en/tutorials/eme/basics/

【讨论】:

以上是关于防止通过检查元素下载 html5 视频的主要内容,如果未能解决你的问题,请参考以下文章

检查是不是正在播放 HTML5 视频元素

在HTML5中获取视频元素的控件(洗涤器)元素

HTML5 视频(Video)元素使用详解

通过 HTML5 视频元素的 Java 多媒体流

直播 HTML5 视频绘制到画布不工作

在网站上下载阻止检查元素的视频