盗链的定义
此内容不在自己做事器上,而通过技能手段,绕过别人放广告有利益的终极页,直接在自己的有广告有利益的页面上向终极用户供应此内容。 常常是一些名不见经传的小网站来盗取一些有实力的大网站的地址(比如一些音乐、图片、软件的下载地址)然后放置在自己的网站中,通过这种方法盗取大网站的空间和流量。
为什么会产生盗链
一样平常浏览有一个主要的征象便是一个完全的页面并不是一次全部传送到客户真个。如果要求的是一个带有许多图片和其它信息的页面,那么最先的一个Http要求被传送回来的是这个页面的文本,然后通过客户真个浏览器对这段文本的阐明实行,创造个中还有图片,那么客户真个浏览器会再发送一条Http要求,当这个要求被处理后那么这个图片文件会被传送到客户端,然后浏览器会将图片安顿到页面的精确位置,就这样一个完全的页面大概要经由发送多条Http要求才能够被完全的显示。基于这样的机制,就会产生一个问题,那便是盗链问题:便是一个网站中如果没有起页面中所说的信息,例如图片信息,那么它完备可以将这个图片的连接到别的网站。这样没有任何资源的网站利用了别的网站的资源来展示给浏览者,提高了自己的访问量,而大部分浏览者又不会很随意马虎地创造,这样显然,对付那个被利用了资源的网站是不公正的。一些不良网站为了不增加本钱而扩充自己站点内容,常常盗用其他网站的链接。一方面危害了原网站的合法利益,另一方面又加重了做事器的包袱。
如何实现防盗链
要实现防盗链,我们就必须先理解盗链的实现事理,提到防盗链的实现事理就不得不从HTTP协议提及,在HTTP协议中,有一个表头字段叫referer,采取URL的格式来表示从哪儿链接到当前的网页或文件。换句话说,通过referer,网站可以检测目标网页访问的来源网页,如果是资源文件,则可以跟踪到显示它的网页地址。有了referer跟踪来源就好办了,这时就可以通过技能手段来进行处理,一旦检测到来源不是本站即进行阻挡或者返回指定的页面。
如果想对自己的网站进行防盗链保护,则须要针对不同的情形进行差异对待。如果网站做事器用的是apache,那么利用apache自带的Url Rewrite功能可以很轻松地防止各种盗链,其事理是检讨referer,如果referer的信息来自其他网站则重定向到指定图片或网页上。
如果做事器利用的是IIS的话,则须要通过第三方插件来实现防盗链功能了,现在比较常用的一款产品叫做ISAPI_Rewrite,可以实现类似于apache的防盗链功能。其余对付论坛来说还可以利用“登录验证”的方法进行防盗链。
在IE或firefox浏览器中,我们可以利用HttpWatch抓包工具抓取网页的表头信息,该信息就包含了referer段内容,该内容反响的便是用户是从哪个地址到达当前页面的。下面利用PHP语句仿照“限定来路链接只能是本网站地址”的防盗链技能:
<?phpif(isset($_SERVER['HTTP_REFERER'])){//通过字符串处理函数匹配来路URL是否以本站域名打头,是,则解释非盗链if(strpos($_SERVER['HTTP_REFERER']),'http://www.thanks.live')==0){echo \"大众您是通过本站其他页面链接到该页面\"大众;}else{echo \公众本站禁止盗链\"大众;}}esle{echo \"大众您是通过类似直接输入当前URL的办法进入该页面的\"大众;}?>
由于referer值是极易假造的,以是上述方法只是大略的防盗链。