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

PHP
php 多线程上下文中安全写文件实现代码
PHP类的使用 实例代码讲解
用php实现让页面只能被百度gogole蜘蛛访问的方法
php 学习笔记
PHP编程过程中需要了解的this,self,parent的区别
php 操作excel文件的方法小结
使用PHP获取网络文件的实现代码
PHP 巧用数组降低程序的时间复杂度
php下将XML转换为数组
php 文件上传代码(限制jpg文件)
php 无极分类(递归)实现代码
PHP 采集获取指定网址的内容
PHP 将图片按创建时间进行分类存储的实现代码
PHP 存储文本换行实现方法
PHP 批量更新网页内容实现代码
用PHP查询搜索引擎排名位置的代码
用php实现的获取网页中的图片并保存到本地的代码
php实现首页链接查询 友情链接检查的代码
处理php自动反斜杠的函数代码
php实现的遍历文件夹下所有文件,编辑删除

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-28   浏览: 80 ::
收藏到网摘: 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)