我在问一个与这些有点相关的问题:
但是,没有人提供似乎与我的情况相关的答案。
我的情况如下:我正在构建一个非常简单的学习管理系统。如果学生付费,他们可以访问视频课程。我想防止:
- 机器人/蜘蛛从找到这些视频并下载它
- 供人们简单地查看源代码、复制视频的 url 并与其他人分享
我怀疑很多人会尝试入侵该网站以窃取视频。
保护这些视频不被共享的最佳方法是什么?我必须将视频存储在我的网络服务器上吗?我可以利用 youtube 或 vimeo 等视频平台吗?
长话短说,没有简单的解决方案。
我会直截了当地说,如果有办法阻止人们下载视频,那么每个视频网站都会这样做。
我已经想到了下面列出的几种方法,您可以采取哪些措施使学生/观众不值得下载视频。
下面将更详细地讨论每一个。
您可以像这样隐藏 URL:
http://mylearningmanagementsystem.com.au/e12d8cd38f00f204e9801998ecc8427e/video.flv
您可以计算文件本身名称的哈希(或盐和哈希,以上只是一个示例)并在 URL 中使用它。
这可以通过这样一种方式来实现,即它们足够晦涩,但对于观众来说仍然是可收藏的和用户友好的。
如果您想更进一步,您可以将视频分成几部分 - 这在定制部分中进行了讨论。
使用一些代码,您可以将视频设置为每周日晚上 11.59 点更改您所在时区的 URL。但是,您链接到的任何页面都必须自动或手动更新,这本身就是一个麻烦(您如何测试代码/如果它跌倒而您没有意识到/类似的事情)。
即使您完成了所有这些工作,任何为该页面添加书签的用户都会遭受链接腐烂的困扰。
使用一些时髦的服务器端代码,您可以限制视频可以下载到 IP 地址(或根据用户情况,IP 的子网)的次数。
这不是我的强项,但您可以查看有关动态 IP 限制的文章。以下是网站的摘录
根据以下任一条件动态阻止来自 IP 地址的请求:
- 并发请求数。
- 一段时间内的请求数。
也有可能对Drupal 做同样的事情。
您可以加倍努力并制作自己的视频管理系统(看起来像您一样),并从您自己的服务器上提供视频(这就是我所说的定制服务),但是一些尝试过的程序是像索尼的 CD 管理软件那样有缺陷,或者正在惩罚诚实的用户,比如 Apple iTunes 的 FairPlay DRM 软件。
如果您最终采取了为用户提供程序/网络服务来观看视频并将其限制为密码/加密密钥的方式,您可能会惹恼那些善意为您的内容付费的客户。这基本上是所有版权保护系统都尝试过但完全失败的原因,因为要么该程序没有得到足够好的保护,要么人们只是因为使用起来很尴尬而停止使用它。
当您将视频提供给用户时,您可以将它们分解并按章节分开,因为第一章是一个视频,第二章是另一个视频,依此类推(如下所示):
http://mylearningmanagementsystem.com.au/video_title/chapter_01/video.flv http://mylearningmanagementsystem.com.au/video_title/chapter_02/video.flv http://mylearningmanagementsystem.com.au/video_title/chapter_03/video.flv
...您可以将其与第一部分(模糊 URL)中的散列思想结合起来:
http://mylearningmanagementsystem.com.au/e12d8cd38f00f204/8fd3611c40e74c3d/video.flv http://mylearningmanagementsystem.com.au/e12d8cd38f00f204/92d7f54d09c80436/video.flv http://mylearningmanagementsystem.com.au/e12d8cd38f00f204/27bd98792bea3103/video.flv
但是,这可能有其缺点:
这里的关键点是,这确实为你做了很多不必要的工作。下一个选项是使用已经可用的视频流服务。
有很多选择可以托管和分享您的视频。YouTube和Vimeo是其中的两个选项。我将解释为什么我更喜欢后者。
密码保护
如果您只想与特定数量的付费用户共享视频,您可以在 Vimeo 上使用密码保护您的视频。AFAIK,YouTube 不提供此服务 - 它只允许您选择成员来观看视频。
不仅如此,您还可以将一堆视频添加到相册(在 Vimeo 中),并对相册进行密码保护,因此您只需更改相册的密码。
请记住,您可能会遇到越来越多的支持消息,例如“但这是当前密码还是上周的密码?”
设置嵌入设置
您可以使视频无法嵌入任何页面,这样用户就必须直接进入 Vimeo,输入密码(如果您在上面设置了密码),然后在他们的网络浏览器中查看。AFAIK,您可以嵌入任何您可以查看的 YouTube 视频。
您必须记住,快速的 Google 搜索显示有 大量 在线网站允许您从这些视频托管网站下载视频。甚至还有Firefox和Chrome的浏览器插件。
如果您的企业依赖您的视频来实现盈利,并且您想更进一步,那么有付费流媒体服务专门从事内容分发,并具有适当的访问权限管理和内容保护。其中一项服务是Brightcove。Brightcove 的摘录如下:
Brightcove Video Cloud 安全地提供最高质量的点播和实时视频体验,以覆盖您的观众——无论他们身在何处。我们简化了向网络、移动和联网电视日益复杂的设备和标准生态系统的交付
... 和 ...
保护您的宝贵内容
确保您的视频安全。使用 RTMPe 流加密和 SWF 验证来防止视频流翻录和内容盗窃,并确保您的视频流仅在您的授权播放器中播放。
细粒度的访问控制
准确确定您的内容显示的时间和地点,以遵守内容许可限制、全球发布计划或安全的防火墙后交付。用户友好的图形界面允许您按日期、域、地理、播放器或 IP 地址限制访问。为了获得更大的控制,通过 IP 地址范围限制对敏感材料的访问,并确保内容只能从经批准的网络中访问。
如果您可以查看它,则可以下载它,无论您多么模糊它。
如果有办法阻止人们下载视频,那么每个视频网站都会这样做。
如果你有无限的资源,你可以结合上面列出的所有技术,让它不值得任何人花时间。但是,在您付出所有努力之后,观众总是可以设置许多屏幕捕获程序之一,以将所有视频录制到他们的硬盘驱动器上。
这取决于您,以及您对视频的警惕程度。请记住,您花费的精力和时间使翻录视频变得更加困难,这与普通付费客户获取和使用内容的难度成正比。
更多信息:
也许有点太晚了,但我把它放在这里是为了帮助其他人。
正如其他人所说,一旦内容到达某人的计算机,就无法保护内容。但是我们可以通过设置一些障碍来防止不受控制的内容共享。
我注意到许多网站(包括linkedin、pluralsight 和许多其他网站)使用的一种方法是使用哈希保护授权信息的资源url。此类令牌包含足够的信息,用于识别要提供的内容以及 URL 有效的时间范围。
假设您要保护的视频是:example.com/videos/1234.mp4 这是一个示例,说明您如何在第一次请求资源时生成令牌(在您对用户进行身份验证并完成其他验证之后):
validFrom = unixTimestamp
validTo = unixTimestamp
video = 1234.mp4
privateKey = yourSecretKey
token = HASH(validFrom.validTo.videoUrl.privateKey)
现在,创建一个包含所有上述信息的 url,不包括私钥。您的最终网址将是这样的:
example.com/video?validfrom=1566831998&validto=1566839198&path=1234.mp4k&hash=HhgcWmRViYeQLn4AZoQvkVXotPU
现在,每当对路径 /video 的视频发出请求时,您都会从 url 中获取所有参数(不包括哈希),并像之前一样从参数和您的私钥中创建一个哈希命令。如果您刚刚生成的散列与 URL 中包含的散列匹配,则可以说该 url 是有效且未经调整的。JWT 身份验证中使用了相同的技术,并且非常有效。因为您不必在任何数据库中存储或检索信息。这使得它非常快速且易于实施。
验证令牌后,您可以将 FileStream 返回到 url 中请求的媒体。
如果它是一个小且不太动态的组,那么 youtube 或 vimeo 可能是一个可能的选择。但它不可扩展。如果您有一个动态的观众群,成员可能会在不同的时间加入和离开,那么您需要在您自己的服务器上加密视频。现在最大的挑战将是密钥分配。您需要有一个密钥方案,以便每个用户都有一个唯一的密钥,但用于加密视频的密钥是相同的。这是一种可能的方法:https ://sparrow.ece.cmu.edu/group/pub/old-pubs/elk.pdf 您可能想要查看的其他算法是:MARKS、LKH 等。