当前位置: 首页 > 图文教程 > 网络编程 > PHP > 网站图片防被盗的方法汇总

PHP
《PHP设计模式介绍》第十三章 适配器模式
《PHP设计模式介绍》第十四章 动态记录模式
《PHP设计模式介绍》第十五章 表数据网关模式
《PHP设计模式介绍》第十六章 数据映射模式
《PHP设计模式介绍》第十七章 MVC 模式
Zend Framework 入门——快速上手
Zend Framework 入门——多国语言支持
Zend Framework 入门——错误处理
Zend Framework 入门——页面布局
详细介绍php5编程中的异常处理
PHP5 OOP编程中的代理与异常
PHP程序的常见漏洞攻击分析
PHP.MVC的模板标签系统
PHP教程:PHP编码书写规范
PHP开发大型项目的方法:OOP思想
php使用curl模拟用户登陆
php对gb编码动态转utf-8编码的几种方法评测
php设计模式介绍之章代理模式
“在phpMyAdmin使用用户口令登陆”补充
PHP入门速成

PHP 中的 网站图片防被盗的方法汇总


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-28   浏览: 129 ::
收藏到网摘: n/a

图片防盗: 是不想自己的图片被别人使用。

图片防盗链: 是不想自己的图片被别人使用,且消耗的是自己的服务器流量。

图片防盗是困难的,完美的图片防盗那几乎是不可能的。但还是有很多方法能够减少图片盗用,下面是10种,选一种你喜欢的吧。

隐藏图片

使用空白图片覆盖真实图片 

Protect Images Background Method 

这个方法可以让别人无法获取真实的图片,除非查看源代码。

你可以把真实的图片做为背景图片,而使用一张透明图片匹配尺寸并覆盖到真实图片上面。

例如:

 <div id="image1" style="background-image: url(originalImage.jpg);">
<img src="blank.gif" height="250px" width="300px">
</div>

这样,当别人使用右键查看或保存图片的时候,得到的是这张透明图片。

这里是2个 JavaScript框架可以实现这种图片防盗链方法:

dwProtector for MooTools(http://davidwalsh.name/mootools-image-protector-dwprotector)

dwProtector for jQuery(http://davidwalsh.name/image-protector-plugin-for-jquery)

自动截切图片

Super Simple Image Tiles(http://supersimple.org/imagetiles/) 

PHP Image Slicing 

这是一个非常有效的图片防盗链方法。

它支持两种方案:

让用户下载到的是被裁切过的图片。

让用户下载到的是打上水印的图片。

当用户尝试下载图片的时候,它就会进行截切或添加水印操作,但是这个方法也有很大的劣势:

造成太多的服务器请求负荷,对网站整体性能影响不好

你将拥有许多的图片文件

使用带水印的图片 (预先生成)

预先给图片添加水印也是个防止图片被盗的有效方法,就算别人要盗,至少也为你免费宣传了一下自己的网站。

但缺点也来了:

图片会看的不清楚或不美观了(这对于图片展示类的网站尤其重要,但又正是该类网站特尤其图片防盗)

可以下载然后裁剪水印(当然,如果你是那种把水印放在图片中间或水印有图片这么1/3大的家伙,就不用担心这个问题了)

要手动添加水印的话,可以使用PhotoShop,GIMP,轻松水印等软件。也可以选择下面的一些在线图片水印工具:

PicMarkr(详细介绍)(http://parandroid.com/picmarkr-online-add-to-the-picture-watermarking-services/) 

Online Watermarking 

WatermarkTool(http://www.watermarktool.com/) 

Online Watermark Website 

使用水印 (服务器端生成)

使用服务器端自动为图片添加水印,是件省心的事情。只是需要一些脚本知识。

下面是一些相关的各种脚本语言的示例方案:

Asido: PHP Image Processing Library(http://asido.info/) 

PHP Image Processing Library 

Asido 是一个PHP图像处理库,可以运行于 GD2, Magick Wand 和 Image Magick.

这里 是 Asido 为图片添加水印的详细说明。

其它PHP 解决方案:

Put watermark on images using PHP(http://www.phpjabbers.com/put-watermark-on-images-using-php-php20.html)

Watermark your images with PHP 5 and GD(http://www.litewebsite.com/?c=19)

Watermark images on the fly in PHP(http://www.sitepoint.com/article/watermark-images-php/)

ASP.NET 解决方案:

Thumbnail and watermark images on the fly with ASP.NET(http://www.dmxzone.com/ShowDetail.asp?NewsId=10287)

Watermarking Images in ASP.NET with an HttpHandler(http://blog.donnfelker.com/post/Watermarking-Images-in-ASPNET-with-an-HttpHandler.aspx)

CoolWatermark (paid)(http://www.imagecomponent.net/products/coolwatermark.aspx)

Ruby 解决方案:

RMagick(http://rmagick.rubyforge.org/)

Watermarking your images with RMagick(http://snippets.dzone.com/posts/show/6014)

P.S:俺偶尔良心发现的时候,会考虑一下版权问题: 这种自动添加水印的方法是为每一张力图片都添加水印,但是否有权利为每张图片都添加水印呢?除非所有的图片是自己原创。或许这也是国外给图片打水印的网站比较少的原因之一。

使用Flash来显示图片

swfIR (详细介绍)(http://parandroid.com/swfir-to-increase-your-web-page-picture-variety-of-special-effects/) 

swfIR 

swf image replacement 可以让图片显示于Flash内部,让右键下载变的不可能。

并且,图片仍然可以使用CSS进行样式化。

缺点可想而知: 拖慢网页载入速度。

基于浏览器的图片防盗

禁用右键菜单(http://www.dynamicdrive.com/dynamicindex9/noright.htm) 

Disable Right Click 

通过JavaScript来禁用点键菜单 是图片防盗的一个方法,但它仅仅是对于网络菜鸟来说,中等点的网民可以很轻松的查看到代码获取图片地址,再高等点的可以轻松破解,禁用你的禁用!

所以这并不是一个好方法,更重要的是它是极不利于用户浏览体验的。

这有一个折中的方法,你可以通过一个jQuery 插件 来实现仅仅禁用保存功能。

禁用IE6的图像工具条 

Disable IE6 Image Toolbar 

在IE6下,当鼠标悬浮在一张图片上时,会出现工具条,上面有保存功能,你可以使用下面的代码禁用:

 <meta http-equiv="imagetoolbar" content="no">

你还有其它图片防盗的方法吗? 欢迎分享。

(原载:www.webresourcesdepot.com)