2009-07-17 48 views
4

我想至少防止普通用户下载我的Flash视频。如何防止/难以下载我的Flash视频?

这样做的最佳方法是什么?

创建HttpHandler的,添加的令牌(例如TIMEID),设置高速缓存控制为no-cache,以便只有具有正确令牌的用户可以查看正确的视频。这是可行的吗?

这是从客户端的视频不应该由用户下载,只应在特定网站上观看的要求。

我想知道,如果这个工程: http://www.somesite.com/video.swf?time=1248319067

Server将生成令牌(时间在上面的例子),这样用户只能有一个请求,这个链接。如果用户想要再次观看视频,他需要再次访问我们的网站以获取令牌。这可以防止新手下载吗?

我不能被downloadHelper Firefox插件下载这个flash视频: http://news.bbc.co.uk/2/hi/americas/8164177.stm

更新(13:49 PM 2009/07/23): 上述文件可以使用一些视频下载软件进行下载。

下中国网站的视频文件都有很好的保护(使用我不能下载了很多视频下载软件): http://programme.tvb.com/drama/abrideforaride/video/

你知道它是怎么做的?

+0

嗯嗯很难...抱歉,我不得不说... – 2009-07-17 09:06:37

+0

你不说你为什么要防止它。了解为什么会帮助人们建议比您选择的解决方案更好的替代方案,即防止下载。 – 2009-07-17 10:14:24

+0

增加原因。 – Billy 2009-07-17 10:32:27

回答

7

我不认为有一个简单的方法,从让你的视频停止人,如果他们想要他们,

有很多插件的Firefox是允许从连YouTube和许多地方下载的。我想这些插件会禁用您为隐藏视频所做的任何尝试。

与从闪烁图像拍摄图像相比,它们并没有太大的不同,它们在要查看的图像上放置了一个清晰的gif图像,以便在右击并保存时获得“屏蔽”图像,但可以被击败通过低打印屏幕按钮。

如果你想休闲用户找回你的文件

,使用闪光灯控制和缓冲一两分钟的视频和做出闪光灯与服务器进行身份验证,以获得这些文件。这对我来说似乎是合理的

1

听起来你需要添加授权和认证。

你可以把Flash视频在不同的文件夹在你的ASP.Net应用程序和该文件夹中添加一个web.config文件拒绝访问未经授权的用户。例如:

然后,你需要启用身份验证为您的网站。最简单的方法是forms authentication。提供硬编码用户名和密码的简单示例here

在ASP.Net中可以使用身份验证框架执行加载操作,我建议使用Google搜索一下。

2

我不认为真的有一个简单的方法来限制人们获取它。您向他们发送视频,这是他们如何查看它。任何用户都可以使用FRAPS或类似的工具从屏幕上复制视频。

如果你担心被复制和其他地方使用,那么你可以水印,或使用一些其他类型的复制保护方法,将让您识别在其他网站上你的工作。如果你担心人们将其复制为个人用途,那么你真的无法阻止它,你将它发送给他们。

编辑:尽职调查将通知您的客户复制他们将发布的工作是多么容易。大多数客户真的不知道它有多容易。

1

要做到这一点的唯一方法是使用受信任的客户端,DRM和加密源。

您的播放器打开了一个连接,用户必须流的连接,你用自己的令牌执行一些神奇的身份验证,然后加密数据transmite给他们。

如果你不这样做,那么任何人都可以下载你的视频并保存。

但是,除了这些之外,有人可以运行屏幕截图,然后保存视频并重新执行。这又是DRM进来的地方,因为Windows客户端中的DRM的一个关键特性是缓冲区不能被嗅探,因为它在受保护的媒体路径上。

我猜它如何保护你的收入,但对付海盗总是将成为软件开发者的一个问题不管他们的业务是一个问题。

0

我试过两种方法来阻止下载但失败。

  • 使用javascript动态生成闪存对象。
  • 使用问题中提出的令牌思想。

最令我讨厌的是,来自firefox浏览器的简单SAVE/AS可以轻松绕过这些窍门。

迄今唯一变量的方法是使用一个空的SWF文件来加载另一个SWF文件。与令牌理念相结合,它的工作原理。

1

我有我要去尝试为自己(因为我有同样的忧虑),但我知道,它包括了很多额外的时间和工作...

解决方案的解决方案:使用闪光灯压缩视频转换为swf文件。在压缩之前,将一些AS代码添加到影片进行验证。为验证建议:

1测试网址 2创建具有由video.swf检查

我喜欢#2更好,并作为额外的措施,您可以覆盖一个ID代码交换码专用的Flash播放器在视频,所以如果有人使用屏幕录制软件捕获视频,你至少能够跟踪复制的视频..和准确适用报应的原始来源...

1

只要你不能阻止它。但是..你可以让它变得困难。 这里的一些想法进入我的意识

1,首先你的标识添加到视频(总有人可以下载)

2难的方法......后面添加Ajax调用服务器来检查随机生成的密钥,它将每隔N秒存储在会话中。每次发布后清除播放器的缓冲区,并开始从我的视频(使用JavaScript)。 再次使用JavaScript防止视频源被“查看源”下载。

3手柄在URL中的所有影片一样http://www.example.com/viewvideo/1 OR ../?id=1。 用透明背景添加空白图像叠加。 在正常扩展名和样式属性“display:none”的页面上某个地方提供原始视频和空白视频。 (会造成问题,一些下载佣工)

4每当你投放视频检查,如果请求是来自浏览器(即检查用户代理)

5饼干与视频的ID结合了一些随机值。检查它的客户端和服务器端,然后提供视频。

6在focusOut事件隐藏与JavaScript的视频。在闪光灯中放置一个恢复按钮并保持框架不变(如暂停但没有原始视频进入缓冲区)。

7结合这些方法

这些都是随机产生的, 没有测试无论是我说没有担保视频下载。

2

这是我怎么样来解决这个问题。

此方法通过创建一票,下载过一个http请求的内容...使用相同的票来下载内容的另一个尝试将失败,因此试图再次下载该内容的扩充功能或用户手动试图不这样做,因此Flash播放器将是下载内容的唯一方式。然而,这种方法有一个缺点,用户将无法跳到未下载视频的一部分......在某些标准播放器实现中,甚至可能会阻止视频加载。任何想法都将受到高度赞赏。

我开始编写一个PHP脚本,它将一个GET请求中的视频文件(取决于视频集合的存储基础设施)的视频文件,文件名或本地路径以及唯一散列值(a很难猜测,并提出可能与一个秘密密钥生成,所以它可以验证来自我们的接收者(Flash播放器),如果黑客发送给我们一个使用过的哈希或无效哈希(不满足我们的密钥),我们将不会发送给他的文件)。 PHP脚本随后打开视频文件并使用正确的视频MIME类型发送其内容。对于FLV,MIME类型是video/x-flv。它确保一旦以前没有使用独特的散列,并且从您的秘密加密密钥有效地生成。

然后,一旦与Flash Player加载页面时,我们可以给用正确的PHP文件获取参数作为视频网址到视频播放器。 (如果它是一个放不开的球员,仅允许FLV文件可以随时设定您的.htaccess文件只解析。FLV文件作为PHP脚本中的特定文件夹,重命名你的PHP文件为FLV和。试试你的运气).. .anyways ...同时生成一个散列键......也许你可以把服务器当前的时间,并附加到一个盐值,如两个脚本已知的另一个键,并用你的密钥加密这个最终的连接。

因此,一旦视频网关php脚本将收到一个文件名或哈希键......它会解密哈希键,并找出它是否有效地从姐妹脚本生成,并确保不再发送视频到相同的散列键...

为了增加安全性,您可以使用cronjob或bootstrap机制每天重置密钥。为了防止重复使用散列键,可以将它们存储在mysql数据库,文件操作或NOSQL(取决于您的需要和基础结构)中。

请确保该文件是由相同的用户代理请求生成散列键。如果黑客在flash播放器有机会使用散列密钥之前尝试使用cURL或Wget您的视频未使用的url。在这种情况下,黑客必须模仿浏览器的用户代理或使用他们的命令行工具下载文件......但请注意,这不是您的平均冠军。

0

在我的答案你不能停止图像/视频盗窃,但你可以让普通用户更难,但你不能让像我们这样的程序员更难(我的意思是窃贼,知道一点网络编程)有一些技巧你可以尝试: -

1.)使用Flash作为YouTube和许多其他网站,如http://www.funnenjoy.com

2.)div重叠或背景图片设置(但用户很少意识可以通过打开检查元素或其他开发人员选项轻松保存所有资源)。 3.您可以禁用右键单击和特定的按键,如CTRL + S and others possibles with JAVASCRIPT,但主要缺点是,如果用户禁用JAVASCRIPT我们所有的技巧失败。

4.)每当需要图片/视频时,将图片保存在非在线目录中(如果您有完全访问网页服务器的权限),并使用服务器端语言(如PHP)读取该文件,并更改图片ID时间或创建脚本可以在每次访问后自动更改ID。

5.)在apache中使用.htaccess阻止其他站点链接您的图片。你可以用这个网站自动生成.htacesshttp://www.htaccesstools.com/hotlink-protection/