2009-08-18 174 views
28

如何防止从我的网站下载图像和视频文件?可能吗? 什么是最好的方法来做到这一点?如何防止从我的网站下载图像和视频文件?

+0

是不是需要登录才能访问?或者你的意思是阻止它们被保存在浏览器之外? – jmucchiello 2009-08-18 16:30:56

+0

感谢所有伟大的答案:) – 2009-08-19 05:24:48

+0

我不确定你的目的是什么,但如果你展示你的艺术作品可以说,你可以使用Flash画廊让事情变得更加困难。他们可以做“打印屏幕”的东西,但仍需要时间。 – Tarik 2011-10-22 17:58:48

回答

70

不,这是不可能的。

如果你能看到它,你可以得到它。

+23

+1。你可以让它变得不方便,你可以让它变得困难,但是你不能让它变得不可能。 – JMP 2009-08-18 15:20:31

+6

必须将图像/视频下载到浏览器以供用户查看。他们会在电脑上的某个地方。 – Edd 2009-08-18 15:45:20

+1

如果您流式传输视频而不是托管文件,则可能会让用户更难以挖掘它们。 – 2009-08-19 14:02:28

1

不,它不是。您可以阻止右键单击和相似的东西,但如果有人想要下载它,他会这样做,相信我;)

+3

右键单击块非常烦人我想要右键单击一个链接并选择“在新选项卡中打开链接”,例如。 – vit 2009-08-18 15:20:14

+0

只需简单地在浏览器中暂时关闭JavaScript,即可轻松绕过右键单击块。另外,我必须同意智慧:他们真的非常恼人。 – Dubs 2009-08-18 16:00:37

1

只要他们查看包含图片或视频的页面,该项目就会下载到他们浏览器的临时文件夹。所以如果你不想下载它,不要发布它。

14

请勿将它们发布到您的网站。

否则这是不可能的。

2

你可以减少的可能性,但不能消除它...

6

总之,没有。如果有人可以在他们的浏览器中查看图像或视频,那么他们已经按照定义下载了它。这就是网络的工作原理 - 它是基于客户端服务器的。无论您在浏览器(客户端)中查看的内容是否已从远程网站(服务器)传输到您的计算机。

+2

这就是为什么每次有人浏览你的网站时都会创建一个“复制品”,这会大大增加互联网上版权法的混乱局面 – rmeador 2009-08-18 16:12:26

10

必须下载图片才能被客户查看。在很多情况下,视频都是类似的情况。您可以设置代理脚本来提供文件,但这并不能真正解决阻止用户获取自己副本的问题。有关此主题的更全面讨论,请参阅问题How can I prevent/make it hard to download my flash video?

1

您可以标记文件夹或文件,使其不具有读取权限(任何主要Web服务器均支持此功能)。这允许您将它们存储在服务器上,而无需对外界进行任何级别的访问。如果您有一项服务为其他人下载图片,或者您使用Web帐户进行FTP访问,但不希望任何人查看文件,则可能需要执行此操作。 (即将一个.bak文件上传到服务器,让其他人再次FTP下载)。

但是,正如其他人所说,进入版权领域的人们可以查看图像或视频,但不是在本地保存它们,尽管有阻止非法使用的工具,但并不完全可能。

6

在标准的HTML中,我不知道。

你没有真正说,但我猜你正在与人深层链接到你的内容有问题。如果是这样的话,你是开放的服务器端代码,我认为这可能工作:

  1. 创建一个接受数字 ID,它映射到服务器文件路径页面, 打开该文件,写二进制 直接到响应流。
  2. 在页面请求,生成 一堆随机的ID,并将它们映射到 实际的媒体的网址,并存储 映射对象服务器端的某个地方 (会话?)用有限的生命。
  3. 使用媒体呈现您的页面 指向新媒体页面 的链接以相应的ID作为查询 字符串参数。
  4. 清除映射对象,并在每次回发中生成所有新链接 。

此:

  1. 不会阻止人们从你的页面
  2. 内下载从 绝对不是标准 HTML
  3. 如重量轻,有它自己的一套问题。

但它是一个可行的过程的一般概要,它可以帮助您防止用户进行深度链接。

5

正如很多人所说,你不能阻止某人下载内容。你不能。

但是你可以让它更难。

你可以用透明的div覆盖图像,这会阻止人们右键点击它们(或者,设置div到图像的背景将具有相同的效果)。

如果您担心交叉链接(即其他人链接到您的图片,您可以检查HTTP引荐来源并将来自不属于您的域名的请求重定向到“其他”)

6

我想添加一个更具哲理性的评论,尤其是互联网的全部意图是共享数据,如果你不想让人们下载图片/视频/文档,don'把它放在网上其实很简单,很多人认为他们可以在现有的设计上强加他们自己的规则,那些想要在网络上发布内容并控制其发布的人正在寻找他们的蛋糕和也吃吧。

+3

哲学没有问题,除非你花时间和金钱去制作一张优秀的产品照片发现另一个大陆上的一些不提供客户支持的老鼠已经占用了你的照片艺术,并削弱了你的价格。 – 2015-09-08 00:13:32

3

它也不会伤害你的图像水印Photoshop或甚至Lightroom 3现在。确保水印清晰并位于图像的显眼位置。这样,如果下载,至少你得到的广告!

1

将您的图像或视频以Flash格式。很棒。

+0

有没有一种工具可以在将mp3转换为swf的linux服务器上运行? – Pons 2010-04-28 14:31:27

+3

三个字:Flash Decompiler Trillix。也很好。 – Fordi 2010-10-18 07:34:22

0

插入透明的gif 1 x 1像素只是<body>标签中:

<body><img src="route-to-images/blim.gif" class="blimover"> 

然后用这种风格是:

.blimover { 
    width: 100% !important; 
    height: 100% !important; 
    z-index: 1000 !important; 
    position: absolute !important; 
    top: 0 !important; 
    left: 0 !important; 
} 

这将从一个网页确认删除任何点击功能,但它阻止人们窃取任何内容!

你可以应用相同的<div>,<section>,<article>等,只是相应的名称,并防止您的副本和/或图像被撕开。

虽然......没有停止屏幕抓取......

+2

防止点击功能不是很好,有时它藐视网站的其他用途 – 2012-10-20 21:52:48

+0

大多数浏览器都有检查元素,这足以下载显示在浏览器上的任何类型的对象 – Oluwatumbi 2015-02-25 17:29:18

+0

当然,我同意这两个评论,但在向客户解释这些以及更多内容之后,他们只是想要第一道防线尝试防止复制被撕掉。客户希望客户得到,解释陷阱,然后相应发票;) – redplanet 2015-02-25 21:26:04

0

当然,用户可以看到的任何图像都可以保存在计算机上,您无法对此做任何处理。现在,如果你想阻止访问用户不应该看其他的图像,我实际上做这样的说法:

  • 每一个环节都是在你的形象标签“源”,其实是一个请求 发送到服务器上的控制器,
  • 服务器检查访问特定用户的 权利,并返回图像如果用户 应该有访问它,
  • 所有图像都存储在目录不能从浏览器直接访问的 。

效益:

  • 用户将无法访问任何你不原意他/她有机会获得

缺点:

  • 那些请求很慢..特别是有同一页面上有很多图片。我还没有找到一个好办法加速这个事实..
0

您可以设置图像为背景图像,并有一个透明的前景图像。

0

你不能停止图像/视频窃取,但你可以让普通用户更难,但你不能让像我们这样的程序员(我的意思是窃贼知道很少的网络编程)更难。

有一些技巧,你可以尝试:

1)使用闪光灯如YouTube和许多其他网站,如http://www.funnenjoy.com一样。

2)事业部overlaping或背景设定PIC(但用户很少感可以很容易地通过打开检查元素或其他开发人员选项)保存所有资源。

3)您可以禁用右键点击特定的按键,例如CTRL + S和其他候选条件与JavaScript,但主要缺点是,如果用户禁用JavaScript的我们所有的招数失败了。

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

5)在Apache中使用的.htaccess他人网站,以防止图像的链接。我如何做到这一点在未来的情况下,你想知道你可以使用这个网站自动生成.htacess http://www.htaccesstools.com/hotlink-protection/

1

这是。

我把这个的。在根服务器上htaccess文件:

RewriteEngine on 
RewriteCond %{HTTP_REFERER} !^http://(www\.)?domain.com/ [NC] 
RewriteCond %{HTTP_REFERER} !^http://(www\.)?domain.com.*$ [NC] 
RewriteRule \.(mp4|avi)$ - [F] 

这将停止他们说去domain.com/videos/myVid.mp4,然后从那里保存。

+0

此方法以前建议在stackoverflow [这里](http://stackoverflow.com/questions/10236717/htaccess-how-to-prevent-a-file-from -direct-url-access)由Ruslan Osipov提供。其他人报告说它的成功。 – 2015-09-08 00:19:04

-1

我认为最好的方法是: 在分离的加密部件中分流视频。

有视频托管服务,如vzaar有这个功能。 据我所知,这将使它很难直接下载。至少95%的人。

但是,当然,如果视频在屏幕上播放,人们可以使用屏幕录像机和一些简单的软件从音频输出中录制声音(但他/她必须播放完整的内容才能保存,完全不方便)。

3

由于浏览器需要传输内容以显示它(文本,图像,视频),所以当显示网站时,数据已经存在于客户端计算机上。然而,正如以前的答案就如何使它更难了一点小建议无经验的用于抓取的内容,这里有一些方向:

  • 一般
    • 覆盖的respecitve内容有透明<DIV>或 透明图像(如对此问题的一些答案中所述)
    • 在框架集中打开网站,因此保存可能会丢失框架内容。
    • 通过window.open()打开网站隐藏菜单栏。
    • 禁用通过JavaScript右键点击(不推荐,由于可用性所有的副作用)
    • 加载网页的HTML代码从另一个文件(可以检查特定的引荐或可能是ROT13)通过JavaScript,所以很难访问源代码。
    • 告诉所有的内容是display:none打印机的浏览器(像@media print { body, div, p { display: none } }
    • 使用JavaScript来隐藏内容的客户端发出的截图之前(见Stop User from using “Print Scrn”
    • 尝试禁用或覆盖剪贴板(见this post
  • 图片
    • 不要使用图像<img>标签,但设置图像作为背景为<DIV>
    • 将图像封装到SVG或Flash电影中,使其很难以可用格式访问。
    • 为图像禁用缓存(通过<meta>标记或通过在服务器传递上设置适当的标头),因此它们不存储在浏览器缓存中(客户机的计算机上可以非常方便地访问)。
    • 将图像剪切成部分,因此需要一些额外的工作来重建整个图像
    • onmousedown事件添加到图像,例如显示版权警报。
    • 通过服务器脚本(例如PHP)传送图像并检查引用者。
  • 影片
    • 流视频为了防止简单的下载通过URL。
    • 裹视频到Flash电影。
    • 使用支持DRM一些讨厌的格式。
  • 文本
    • 使文本不可选择(见How to make HTML Text unselectable
    • 此外到覆盖,敷文本成JavaScript(例如,ROT13后或从第二文件动态加载),所以文字不直接在源代码中提供。
    • 转换文本到影像(这可能会降低显示质量),SVGs或Flash

同样,我再说一遍,这些都不能抢夺内容(例如,通过制作screenshop停止有经验的用户和 - 可选 - 在其上运行OCR)。有时候,使用浏览器的开发人员工具或使用没有JavaScript的网站一样简单。然而,它会给没有经验的用户带来困难,所以他们可能会更容易抓住。

也请记住,阅读页面的内容时,上述技术会影响搜索引擎(如果你有兴趣在阻止他们,用robots.txt开始)。

谢谢你的任何其他的想法,以补充上述名单!

2

如果您使用的是PHP,最好的办法就是控制它的.htaccess,你需要把你的文件,图片和视频正在考虑在一个单独的文件夹/目录下,并创建一个新.htaccess文件该目录的下面:

RewriteEngine On 
RewriteCond %{REQUEST_URI} \.(mp4|mp3|avi)$ [NC] 
RewriteCond %{HTTP_REFERER} !^http://sample.com/.*$ [NC] 
RewriteRule ^.* - [F,L] 

第一行%{REQUEST_URI}将阻止获得通过Web浏览器的文件,或通过curl。 第二行%{HTTP_REFERER}将阻止任何网站访问使用HTML标签<img><video>的imahe /视频例外,除了!你提供的,而不是http://sample.com/通常应该是你的网站本身。

你也可以看看我的问题和接受的答案here在浏览器端的更多技巧。

0

如果您只希望授权用户获取内容,则客户端和服务器都需要使用加密。

对于视频和音频,Azure媒体服务是一种很好的解决方案,它具有内容保护和加密功能。您将Azure媒体播放器嵌入到浏览器中,并从Azure流式传输视频。

对于文档和电子邮件,您可以查看使用特殊客户端的Azure Rights Management。不幸的是,它目前不能在普通的网页浏览器上运行,除了一次性的一次性代码。

但我不确定这究竟有多安全。正如其他人指出的那样,从安全角度来看,一旦下载的字节位于“攻击者”的RAM中,它们就像消失一样。在这种情况下,没有解决方案是100%安全的(请纠正我,如果我错了)。与大多数安全一样,我们的目标是让它变得更难,所以99%的人不打扰。