我的社区

一般分类 => 休闲话题 => 主题发帖人为: TombCrow 于 2006 三月 31, 23:05:53

标题: [转]Apache,IIS防盗链下载的解决办法
作者: TombCrow2006 三月 31, 23:05:53
什么是盗链
"盗链"的定义是:此内容不在自己服务器上,而通过技术手段,绕过别人放广告有利益的最终页,直接在自己的有广告有利益的页面上向最终用户提供此内容。 常常是一些名不见经传的小网站来盗取一些有实力的大网站的地址(比如一些音乐、图片、软件的下载地址)然后放置在自己的网站中,通过这种方法盗取大网站的空间和流量。

为什么会产生盗链
一般浏览有一个重要的现象就是一个完整的页面并不是一次全部传送到客户端的。如果请求的是一个带有许多图片和其它信息的页面,那么最先的一个Http请求被传送回来的是这个页面的文本,然后通过客户端的浏览器对这段文本的解释执行,发现其中还有图片,那么客户端的浏览器会再发送一条Http请求,当这个请求被处理后那么这个图片文件会被传送到客户端,然后浏览器回将图片安放到页面的正确位置,就这样一个完整的页面也许要经过发送多条Http请求才能够被完整的显示。基于这样的机制,就会产生一个问题,那就是盗链问题:就是一个网站中如果没有起页面中所说的信息,例如图片信息,那么它完全可以将这个图片的连接到别的网站。这样没有任何资源的网站利用了别的网站的资源来展示给浏览者,提高了自己的访问量,而大部分浏览者又不会很容易地发现,这样显然,对于那个被利用了资源的网站是不公平的。

盗链的解决方案
其实通过WEB服务器的URL过滤技术,这个伤脑筋的问题会很容易得到解决。 
如果WEB服务器用的是apache的话,那么使用apache自带的Url Rewrite功能可以很轻松地防止各种盗链,其原理是检查refer,如果refer的信息来自其他网站则禁止访问所需要的资源。
代码:
SetEnvIfNoCase Referer "^http://www.boofee.net/" local_ref=1

Order Allow,Deny
Allow from env=local_ref
毕竟是开源的,爽,更复杂的设置可以自己研究哈

那IIS呢??
很痛苦。但是我们可以通过安装第三方服务器扩展让IIS支持。
我找到了一个免费的,用起来还不错
呆呆IIS防盗链扩展版
注册和不注册唯一的区别就是不能自定义盗链页面,具体使用说明压缩包中都有

来自:【冷雨飞竹】http://boofee.net/flyingbamboo/read.php?1