盗链是指服务提供商自己不提供服务的内容,通过技术手段绕过其它有利益的最终用户界面(如广告),直接在自己的网站上向最终用户提供其它服务提供商的服务内容,骗取最终用户的浏览和点击率。受益者不提供资源或提供很少的资源,而真正的服务提供商却得不到任何的收益。
Ⅱ 当我用迅雷下载电影时,点击"下载"后,浏览器却自动弹出新网页,并说"防止盗链,请访问本网站..."
比如,别人上传的东西,你直接拿了LINK去,贴到别的论坛或者网站,宣称"有好东西,快来下载",又或者告诉你的朋友"你要这个文件?俺有连接,快下",然后在那里接受别人的滔滔不绝的景仰之情(当然,结果就是你就别想在这里混了)
什么是盗链
“盗链”的定义是:此内容不在自己服务器上,而通过技术手段,绕过别人放广告有利益的最终页,直接在自己的有广告有利益的页面上向最终用户提供此内容。 常常是一些名不见经传的小网站来盗取一些有实力的大网站的地址(比如一些音乐、图片、软件的下载地址)然后放置在自己的网站中,通过这种方法盗取大网站的空间和流量。
为什么会产生盗链
一般浏览有一个重要的现象就是一个完整的页面并不是一次全部传送到客户端的。如果请求的是一个带有许多图片和其它信息的页面,那么最先的一个Http请求被传送回来的是这个页面的文本,然后通过客户端的浏览器对这段文本的解释执行,发现其中还有图片,那么客户端的浏览器会再发送一条Http请求,当这个请求被处理后那么这个图片文件会被传送到客户端,然后浏览器回将图片安放到页面的正确位置,就这样一个完整的页面也许要经过发送多条Http请求才能够被完整的显示。基于这样的机制,就会产生一个问题,那就是盗链问题:就是一个网站中如果没有起页面中所说的信息,例如图片信息,那么它完全可以将这个图片的连接到别的网站。这样没有任何资源的网站利用了别的网站的资源来展示给浏览者,提高了自己的访问量,而大部分浏览者又不会很容易地发现,这样显然,对于那个被利用了资源的网站是不公平的。一些不良网站为了不增加成本而扩充自己站点内容,经常盗用其他网站的链接。一方面损害了原网站的合法利益,另一方面又加重了服务器的负担。
我遇到的盗链
我的网站遇到最多的是两类盗链,一是图片盗链,二是文件盗链。曾经有一个访问量极大的网站盗链我网站的图片,一天竟然消耗了数G的流量。同时,我站放的不少几十兆的大型软件也常遭到文件盗链,大量消耗我站资源。
盗链的解决方案
其实通过WEB服务器的URL过滤技术,这个伤脑筋的问题会很容易得到解决。
如果WEB服务器用的是APACHE的话,那么使用APACHE自带的Url Rewrite功能可以很轻松地防止各种盗链,其原理是检查REFER,如果REFER的信息来自其他网站则禁止访问所需要的资源。
那么,IIS支持UrlRewrite吗?
答案很简单,不支持。但是我们可以通过安装第三方服务器扩展让IIS支持。
目前有一种产品能比较好地支持IIS的UrlRewrite,名字叫ISAPI_Rewrite。
下载地址在: http://www.helicontech.com/download/
这里只有ISAPI Rewrite的一个LITE版本是免费的,其它都是trial版本。ISAPI Rewrite Lite的版本功能不支持虚拟站点配置,元数据监测和自动缓存清理。 但是基本的UrlRewrite功能都支持。
如何进行UrlRewrite的设置?
isapi_rewrite利用正则表达式进行替换规则的表示。
下面是一个简单的例子,我想让我们的用户输入 http://localhost/test-12314.html 实际上访问的是 http://localhost/test.asp?id=12314 。那么我们的匹配表达式应该是 /test-([0-9]*).html 对应的格式化表达式应该为 /test.asp\?id=$1 。
进行正则表达式的编写的时候,可以利用isapi_rewrite提供的正则表达式测试工具(默认安装提供),进行调试。做好了匹配表达式和格式化表达式,我们可以把它们放到安装目录下的httpd.ini里面。文件保存后,不需重新启动iis即可生效。
对于我的网站,我防盗链的方法是在httpd.ini里面加入如下语句
RewriteCond Host: (.+)
RewriteCond Referer: (?!http://\1.*).*
RewriteRule .*\.(?:gif|jpg|png|exe|rar|zip) /block.gif [I,O]
然后重启IIS,这时防盗链就开始起作用了,其他网站盗链过来的请求都会被拒绝。
至此,我也终于可以摆脱了被盗链的烦恼了。
参考资料:蓝齐儿 你的原创
Ⅲ 什么是迅雷的盗链机制及其影响
也有可能是因为资源不好,下载不了。下面的文章说明迅雷的工作原理 也就是说,迅雷会收集互联网上的所有下载地址和装了迅雷的电脑的资料. 1.其实收集互联网上的服务器的下载地址,很多软件都会这样做.如网际快车等,但网际快车不会收集在下载地址里包涵了用户名和密码的下载地址,为什么?因为网际快车的程序员知道,下载地址里有用户名和密码,就是不想让所有人都使用.但迅雷的程序员可不理你,一样收集,然后供其它人使用.说白了,就是我们站长最恨的"盗链". 例:包涵用户名的下载地: ftp://Thund:[email protected]/0718/ 世界大战.rmvb 这个下载地址里的Thund:Issue就是用户名和密码了 2.上面说到的,只是提供下载的站长利益受损,下载的用户好像说,关我什么事?我下载快,就行了. 嘿嘿,天下可没那么便宜的事.如果网上就那么几个网站的下载点,作用也不是很大,人家站长也不是傻的,让你迅雷一直的盗链.那有什么办法增加下载点呢?不就是那个用过迅雷下载的人喽 迅雷一装好后,以后你系统启动,在你的系统背后,都会启动两个线程(迅雷的),Thunder.exe和Issue.exe,但你在系统的右下角的工具栏里是看不到迅雷已经悄悄的启动了.只有在线程里才能看到. 这两个线程有什么用呢?就是要像BT那样,共享你硬盘上的文件,让其它人下载.所以,局域网的网管可就辛苦了,找死你也找不出,为什么你的网里面的流量那么大. 从以上看出来,迅雷的程序员是很清楚用户是不想共享自己电脑上的文件给其它人下载的,所以他在系统后面悄悄启动迅雷的两个线程,而让你不发觉. 所以就算你不在下载,你上网也会慢得要死.硬盘不用多久就可以丢进垃圾桶里. 3.在迅雷的客户端上,还能通过搜索,找到不同的东西下载.如搜win2003,就会搜到win2003的下载点.但这些下载点可不是在迅雷服务器上的,但这个不要面的,却通过这种方式,让迅雷的用户觉得迅雷提供了速度快的下载点. 这种行为,我相信会得到众多的普通迅雷用户的支持.但这种盗链,严重影响到一个网站的生存.再有,每个迅雷用户也不一定同意自己每天一开电脑,就给别人上传. 迅雷下载速度快的原因和工作原理 迅雷比其它下载工具快,是因为他是P2SP机制,说白了,就是BT的升级: 例:当有一个用户在一个电影网站上,得到一个下载地址(A),然后用迅雷下载,这个下载地址就会收集到迅雷的服务器上. 在地求的另一个地方又有一个用户在另一个网站上下载同一部电影,而得到另一个下载地址(B),就又会给迅雷服务器收集. 然后迅雷服务器就会把相同文件的下载地址(A,B)集合在一起,形成一个资源.那两个用迅雷下载这两个电影的用户也算上.就会有四个下载点了. 而又有用户在别的地方准备下载相同的电影的时候,迅雷就会在数据库里比较,找出相同的资源(其它下载点,也就是上面收集到的),提供给那个准备下载的用户下载,那这个用户就会同时有多个下载点来下载,而达到速度的提升.而这个用户当然也不可能只是享受高速的下载,他同时也会上传了他下载的那部份数据(BT原理). 所以,当一个用户用迅雷下载时,就会连上迅雷服务器,查找资源,如果是热门的文件,迅雷就能返回大量的下载点,供这个用户下载.从而达到下载速度的提升.
Ⅳ 如何阻止盗链
网站图像防盗----Apache配置妙法 每个网站所有者都在尽力美化自己的网站,使它看上去更酷、更具有吸引力,其中最常见的方法就是使用图片、Logo及Flash等。但是,这也会带来一个问题,因为越漂亮、越吸引人的网站,漂亮的图片和Flash等就容易被别的网站悄悄的盗用。下面我们就一起讨论如何防止网站图像被盗用。
需要解决的问题
简单的说,这里有两种不同的盗用行为:
1. 使用HTML标记IMG在自己的网站中引用网站的图片。
2. 从网站上下载图片,然后放在自己的网站上。
对于第一种的盗用行为,合法网站的图片被用来美化装饰其它网站,这种盗用对合法网站的损害比较大,因为访问非法网站的访问者其实是从合法网站获取图片的,合法网站的日志文件充满了访问请求记录,并且带宽被非法访问消耗,而合法网站却没有得到任何好处。这种类型的盗用通过技术手段完全可以被防止。
第二种类型的盗用相对来说比较阴险,浏览者在非法网站直接访问非法的图片,而合法网站的版权受到侵害,却得不到赔偿,甚至无法发现这种盗用。因为Web的工作方式对这种类型的盗用实际上无法被阻止,但是可以使得这种盗用更加困难。
完全杜绝这两种盗用行为是不现实的,但是通过技术手段可以使得这种盗用非常困难。在Apache环境下,通过配置可以限制网站图片被盗用。
标识需要保护的文件
作为网站管理员,最大的希望就是能够保护网站上所有文档,但是从技术角度考虑这种想法是不现实的,因此我们这里只讨论对图片文件的保护。
作为保护的第一步,首先需要标识出需要保护的文件,然后才能进一步对被标识的文件进行保护。在Apache配置文件中添加如下内容:
<FilesMatch "\.(gif|jpg)"> [这里添加保护限制命令]</FilesMatch>
将容器命令包含在或等容器中,或者单独列出,不处于任何保护容器中,这样就会对网站所有文件进行保护,甚至可以存放在.htaccess文件。将该容器放在不同的位置,保护的范围机会有所不同。
Referer HTTP头字段
当用户访问Web服务器请求一个页面时,用户浏览器发送的HTTP请求中会有一个被称为HTTP请求头(HTTP Request Header)的信息,这个头信息中包含客户请求的一些信息,例如发出请求客户主机的浏览器版本、用户语言、用户操作系统平台、用户请求的文档名等,这些信息以变量名/变量值的方式被传输。
在这些信息中,Referer字段对于实现防止图片盗用非常重要。Referer字段指定客户端最后一个页面的URL地址。例如,如果用户访问页面A,然后点击在页面A上到页面B的链接,访问页面B的HTTP请求会包括一个Referer字段,该字段会包括这样的信息“这个请求是来自于页面A”。如果一个请求不是来自于某个页面,而是用户通过直接在浏览器地址栏输入页面A的URL地址的方式来访问页面A,那么在HTTP请求中则不会包括Referer字段。这样对于我们防止盗链有什么帮助呢?Referer字段是帮助判断对图像的请求是来自自己的页面,还是来自其它网站。
使用SetEnvIf对图像进行标记
作为一个简单的例子,假设需要保护的网站的主页面为http://my.apache.org,这时候希望限制所有不是源于本网站的网络访问请求(例如只允许访问包含在本网站页面内的图片)。这里可以使用一个环境变量作为一个标记,如果条件满足时就设置该变量,如下所示:
SetEnvIfNoCase Referer "^http://my\.apache\.org/" local_ref=1
当Apache处理一个请求时,它会检查HTTP请求头中的Referer字段,如果该请求来源于本网站(也就是请求页面的URL为本网站域名),则设置环境变量local_ref为1。
在双引号中的字符串是一个正则表达式,只有匹配该正则表达式,环境变量才会被设置。本文不讨论如何使用正则表达式,这里只需要理解SetEnvIf*命令会使用正则表达式作为参数。
SetEnvIfNoCase命令的“NoCase”部分表示这里的正则表达式忽略大小写,'http://my.apache.org/'、'http://My.Apache.Org/'或 'http://MY.APACHE.ORG/'都可以匹配条件。
在访问控制中使用环境变量
Apache配置文件中的Order、Allow和Deny命令可以实现对文档的基于环境变量的访问控制,使用Order、Allow和Deny命令首先要考虑的是Allow和Deny命令的顺序对于Apache处理结果的影响,应该以下面的方式使用:
Order Allow,Deny
这里表示Apache首先处理该HTTP请求相关的Allow命令,然后处理相关的Deny命令。这种处理方式的默认策略是Deny,所以除非有明确的允许的设置,否则该请求就会被拒绝,任何非法访问将无法成功。
因此,在Apache的配置文件httpd.conf中添加如下命令,来实现本地引用发挥作用:
Order Allow,DenyAllow from env=local_ref
这样只有在local_ref变量被定义的情况下,该请求才会被允许;否则其它所有请求和访问将会被拒绝,因为这些请求不满足Allow条件。
注意,请不要在.htaccess和httpd.conf中使用 容器命令,这里不需要该容器命令,除非有特殊的需求,例如希望Get请求和Post请求进行不同的处理。
把这些相关设置放在一起,在Apache的配置文件中就会有如下内容:
SetEnvIfNoCase Referer "^http://my\.apache\.org/" local_ref=1<FilesMatch "\.(gif|jpg)"> Order Allow,Deny Allow from env=local_ref</FilesMatch>
如上配置可以存放在服务器配置文件httpd.conf中,或者存放在.htaccess文件中,最后的效果是一样的:在这些命令作用的范围内,只有从本网站引用的图片才可以被访问。
对图片进行水印处理
上面介绍的方法并不能完全防止图像盗链,这是因为有些执著的盗用者可以伪造Referer值来盗用图片,使相关设置失效,所以不可能完全防止网站图片被盗链,但是上面采取的措施会使得盗链变得很困难。
此外,还有一个防止图片被盗用的方法,就是对网站的图片都进行水印处理。对一个数字图片进行水印处理是指在图片中加入一个特殊的签名编码,并且可以进行验证和检测,数字水印并不会降低图片的质量,甚至可以实现图像被切割以后的剩余部分仍然会包括水印信息。图片被再次编辑、打印,并再次扫描以后,水印仍然可以被检测到。因此,水印技术是一个非常好的保护图片不被盗用的技术。
记录盗用请求
如果想知道自己网站的艺术品是否被盗,可以尝试使用同样的侦测和环境变量来记录可疑请求。例如,在httpd.conf文件中添加如下命令,那么会在 /usr/local/web/apache/logs/poachers_log文件中记录所有具有非法的Referer头信息的访问请求:
SetEnvIfNoCase Referer "!^http://my\.apache\.org/" not_local_ref=1SetEnvIfNoCase Request_URI "\.(gif|jpg)" is_image=1RewriteEngine OnRewriteCond ${ENV:not_local_ref} =1RewriteCond ${ENV:is_image} =1RewriteRule .* - [Last,Env=poach_attempt:1]CustomLog logs/poachers_log CLF env=poach_attempt
在上面代码中,头两行为条件设置标记(也就是没有正确的本地Referer的图片文件),RewriteCond检测是否该标记被设置,然后RewriteRule设置第三个标记,最后一行使得这样的访问请求被记录在特定的文件中。
Ⅳ 我在局网下载电影,别用说可以用盗链是怎么回来
盗链就是非本站的链接