2

我发现了多种方法来防止图像被盗。

目前我坚持使用这个(基于jQuery):

$('img').bind('contextmenu', function(e) {
    return false;
}); 

这会禁用图像上的上下文菜单。

我现在能想到的解决方案有2个,但不知道是不是好办法:

防止通过检查源代码窃取:
也许有一种解决方案可以加载图像但不会将链接留在源代码中?
我想到了一个空的图像标签,它是用 jQuery 加载的源代码。

防止通过检查网络窃取(来自开发工具)
也许图像可以作为base64加密图像加载?
例如:我的页面请求文件 base64.php?i=flowers.jpg 并且此页面将 flowers.jpg 作为 base64 图像返回。

你怎么看?

4

2 回答 2

0

Okies 我必须把它作为一个存档::)希望这能给你指明方向,如果这没有帮助,请告诉我,我会删除它。

通过执行(Jquery contextmenu brute forcing)您在问题中提到的内容,您只是禁止右键单击方法,还有更多方法可以获取图像的来源。

不会有一个灵丹妙药解决这个问题。

您总是可以让设计团队将图像分成几部分,然后您可以将它们连接在一起。

检查图片盗链 http://www.hongkiat.com/blog/smarter-way-to-prevent-image-hotlinking-with-htaccess/

从以下内容开始阅读:http ://www.davidairey.com/stop-image-theft-hotlinking-htaccess/

  1. 将来自外部网站的链接重定向到您的“不要偷窃”图形。该技术是对站点根目录中 .htaccess 文件的补充。

  2. 为您的图片添加大版权,然后在您自己的网站上裁剪出来。

  3. 将图像包含为 CSS 背景图像

这里有一些技巧

  • http://css-tricks.com/how-to-steal-a-websites-background-image/

    1. 一些 AWFUL(和无效)技术
  • 使用 Javascript 禁用右键单击。

     jQuery("img#jquery_test_image").bind("contextmenu", function(e){ return false; });
    

    或者

    jQuery("img#jquery_test_image").mousedown(function(e){ return false; });
    
  • 由于许多小偷可能会使用右键单击、另存为技术来抓取您的图像,因此这可能会阻止他们大约 2 秒钟。这不会阻止点击和拖动,并且比其他任何事情都更烦人/有害。版权/水印您的图像。

  • 太好了,我可以在让我的图像看起来像垃圾或拥有一个会被忽略或裁剪的微小版权之间做出选择?
  • 将您的图像切成小块并将它们显示在表格中。这是什么,1999?我知道在 #2 中的图像下方手动添加版权也是一项小工作,但这对于任何一张图像来说都太费力了。
  • 使您的图像闪烁

  • 在真实图像上放置一个空白文件

参考

http://css-tricks.com/techniques-for-fighting-image-theft/

http://www.webresourcesdepot.com/10-ways-to-protect-images-from-being-stolen/

于 2013-10-17T08:46:12.550 回答
0

关于网站媒体的第一条规则:你可以看到什么,你可以下载......

如果要禁用图像的上下文菜单,则不需要 jQuery。

它可以很容易地使用<img oncontextmenu="return false;" src="" />

示例:http: //jsfiddle.net/GpJbU/

如果你真的想使用 jQuery,你可以使用:

$('img').on('contextmenu', function(e) {
    return false;
});

$('img').on('mousedown', function(e){ 
    if( e.button == 2 ) {
      return false; 
    }
}); 

示例:http: //jsfiddle.net/sPdn6/

编辑

使用 base64 包括阻止上下文菜单,您可以查看此示例: http: //jsfiddle.net/WfFxb 但是如果您按 F12(开发人员工具)并检查“网络”选项卡,您仍然可以下载此图像。想了想,新手很难。

于 2013-10-17T10:35:41.427 回答