« 上一篇下一篇 »

什么是盗链行为,CDN节点服务器防盗链常见方法

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

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

 

 

二、网站被盗链的危险

   当前盗链行为在业内非常普遍,盗链者为了降低带宽成本、服务器成本,采用盗链的方式,将同行提供的服务为自己所用。

CDN系统从架构上来看包含调度器、分发系统、节点服务等。为了防止盗链发生,通常会在调度器、节点服务等环节对用户进行盗链识别,如果判定为盗链用户,则可以直接拒绝请求。在调度器层级进行盗链识别是很好解决的,因为调度器服务通常部署不会太大,一般会在某些省份,或者在某些机房进行少量部署,即可提供优质的全局服务。但在节点服务系统进行盗链识别的话,难度非常大,主要体现在以下几个方面:

1、节点服务是最终给用户提供资源下载的服务,在CDN系统中需要进行大量部署,会在全国甚至全球范围内进行部署,服务器总数根据CDN系统的大小,从几百台,到几千、几万台都有。

2、盗链者的特征是时刻在变化的,与防盗链是矛与盾的关系,随着防盗链措施的升级,盗链者也在升级盗链行为,由此防盗链变成一个长期艰巨的任务。

3、如果要对节点服务进行防盗链识别的话,必须实时给节点服务提供最新的盗链特征,但节点服务如此大量的部署。要做到实时、安全、可靠的提供盗链特征,会大大增加系统复杂度,导致系统不安全因素增加,也会极大增加系统运维成本。

 

 

三、下面为大家简要的介绍这几种防盗链的方式:

一、IP黑白名单:

这个比较简单,直接配置请求者的IP黑白名单,设置黑名单之后,除了黑名单的用户都能访问;反之设置了白名单,只有白名单的用户都可以访问。这个方法直接有效,但必须知道请求者的具体IP信息,所以适用的场景比较有限。

2、Referer防盗链:

在http请求时,Referer里记录的是请求的来路,所以通过设置Referer黑白名单,可以控制哪个页面或者域名过来的请求是可以访问的。这个方法比较简单,因为你很清楚想让哪个网站或者不想让哪个网站访问,但是缺点就是Referer信息可以伪造。

3、时间戳防盗链:

时间戳防盗链主要是在url请求里,通过增加时间戳的信息来对url加上时间的因素,盗链者如果不及时更新url,那么就会无法访问。这个比较常见,但是如果盗链者定期的过来更新url,这种方法也会失效。

4、中心鉴权

中心鉴权的方式等于在源站增加一层验证,这个方法会对防盗链有效,但会增加请求的时间成本,一般用于有对内容进行完全保护的,比如有些视频网站,需要会员身份才能看的内容,对于这些网站,一般都会做中心鉴权。

以上是比较常见的防盗链方式,当然,大家也可以个性化开发适合自己业务的防盗链方式,欢迎大家体验金山云的产品,和我们一起交流和探讨。

 

总结

  在节点服务层级进行盗链识别,最大的困难在于节点服务部署量大,而盗链行为的识别方法也是时刻在变化的,意味着当识别方法变化以后,必须要立刻通知到所有节点服务,才能有效的防止盗链行为,而对部署在全国甚至全球范围内的所有节点服务,盗链识别方法进行可靠升级实施难度大,风险.