如何防止用户下载或保存图片?

4

我有一个网页,其中展示了一些图片。但我的问题是,我不希望用户下载或保存这些图片。我可以给这些图片添加水印,但那只是替代方案。我也可以禁用右键,但如果用户保存页面呢?

是否有其他替代方案?

希望这个问题清楚明了。


9
用户可以禁用JavaScript以进行右键单击。没有好的替代解决方案:如果您知道图像的URL,您可以下载它。 - Ming-Tang
5
不能完成,不应该完成。 - MK.
为什么不使用水印呢? 我猜您试图防止的是重复使用,而非下载。 - Bob Kaufman
22
让你的页面完全使用Flash制作;为你的Flash应用程序添加一个脚本,如果在三分钟内没有向它传递来自服务器的不同定时密码,则使用带盐哈希加密它,并将其副本存储在数据库中并硬编码到Flash文件中;为了禁用截屏功能,请尝试使用偏振图像-因此,如果像素不对齐,则结果将非常丑陋。但是,这可能还不足够。在这种情况下,最好的解决方案始终是防止用户访问您的网站。 - cbrandolino
3
@Nik: 我现在会截屏,然后等待面对手掌网站。哎呀,感觉不好:这是夸张的修辞手法,用来说明此类技术的事实不可能性和灾难性潜力。 - cbrandolino
显示剩余4条评论
11个回答

31
如果用户能看到图片,那么图片已经在他的计算机上了。将其保存到文件或复制到剪贴板是微不足道的,并且不能可靠地禁用它。
如果您想对图像保持控制,请不要把它放在互联网上。 水印是您能做的最好的事情。

+1 “如果用户能看到图片,那么它已经在他的电脑上了。” 这是字面意义上的真实。如果其他方法都失败了,请使用PrtScn :) - Halil Özgür
我认为,如果图像以base64编码并从CSS作为背景提供,则不会下载文件并在某些缓存文件夹中“保存”。无论如何,一些用户要求网站对其图像进行最基本的保护,以防止主动下载..我们作为开发人员知道这是毫无意义的,但愚蠢的用户只知道要求和要求.. - vsync

4
如果您正在使用Apache服务器,可以通过以下htaccess代码禁用通过绝对URL访问图像,从而只能使用相对URL访问图像:
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?yourdomain.com [NC]
RewriteRule \.(jpg|jpeg|png|gif)$ - [NC,F,L]

此外,使用JavaScript禁用右键菜单,并添加水印以保护版权。这将减少保存图像的机会。


这将减少保存图像的机会。 - shox
黑客仍然可以伪造HTTP_REFERER,因此它并不可靠。然而,这总比什么都不做要好。 - ShapCyber

4

如果用户可以查看图片,那么你无法阻止他保存图片,因为此时你已经将文件发送给了他。

你可以实现一些伪保护代码,如反右键点击来“阻止”保存,但总的来说,这只会让你网站的用户感到烦恼,并且总有办法绕过它。

如果你不希望你的图片被传播,可以加水印或者不发布它们。


4

色情网站,嗯?

好吧,你无法阻止它。你可以用JavaScript技巧欺骗Windows和IE用户,但正如之前所说,这很容易被禁用。你也无法阻止用户保存整个页面。人们也可以截屏、剪切和重新保存。通过URL可用的所有资源都是可定位和可下载的。

不过有一个选项可以使图像下载变得更加困难:自动分割图像。如果图像大小为800x600像素,你可以把它分成一百个(?)80x60的小图形。这会使重新组装稍微困难一些。但也会使呈现结果稍微不可靠。


1
请注意,这不是色情网站。因此,请不要发表此类言论。 - Nik
8
@Nik:FYI,那只是一个玩笑。它很有趣因为它是陈词滥调,没有人会认为它是真的。 - mario
抱歉让你感到沮丧,但我一直在拼命寻找解决方案。无论如何,感谢您的好建议。 :) - Nik
@Nik:不用担心。选择加水印,对你和用户来说都是最不麻烦的选项。另外:给你点赞。虽然这是一个重复的问题,而且是一个极不受欢迎的话题,但并不是一个坏问题。 - mario

3

总是有方法可以绕过这个限制,所以你甚至不应该费心去做。我从来没有遇到过无法破解这种阻止功能的情况。如果适用的话,最好在你的图片上加上你的姓名、日期和版权符号或(C)水印。


2

无法完全防止用户下载您的图片。如果您在网上发布图片,就假定有人可以复制它。无论您采取什么解决方案,最终用户仍然可以截屏。


1
防止用户下载图片是浪费时间的,因为即使他们无法下载图片,他们仍然可以做一个截屏 :-(

1

我看过一些网页在他们展示的“主”图像上覆盖了一个透明的单像素.gif,这样当你右键保存时,你只会保存单像素图像。我不确定确切的HTML是什么,但有几种明显的方法可以实现。

(就像其他技巧一样,这并不特别难以规避,但至少它增加了一个烦恼因素,会阻止大多数人。)


1
如所有答案所述,无法阻止用户保存图像,但您可以尝试让用户难以这样做。
虽然这并不是很高效,但您可以将图像分成许多小块,使其更难(但并非完全不可能)保存和合并它们。

0

从网站下载图像的方法有很多种,所以无论你做什么,最终总会有人下载它。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接