何谓盗链:百度百科解释(盗链是指服务提供商自己不提供服务的内容,通过技术手段绕过其它有利益的最终用户界面(如广告),直接在自己的网站上向最终用户提供其它服务提供商的服务内容,骗取最终用户的浏览和点击率。受益者不提供资源或提供很少的资源,而真正的服务提供商却得不到任何的收益。)!网站资源被盗链简单来说就是别人不是从你的网站通过下载资源!
盗链是什么?盗链与广告流量问题及如何防止
盗链危害:对电脑用户没有危害 但是会拖累被盗链网站的速度!
被盗链的几种可能情况:
1、人气非常旺的网站、论坛、社区的网页里直接引用了(使用标记)你网站上的图片,或者直接在其他网页(使用flash或媒体播放插件)里嵌入了你网站上的mp3。
2、在人气非常旺的网站、论坛、社区里提供了你的资源的下载地址。
3、你网站的资源可能被一些下载软件列入了“资源候选名单”,当其他人用下载工具下载相同的文件时,下载软件会自动找上门并且从你的服务器下载。
盗链增加网站流量的问题
有联盟的一些网站长对盗链的理解还很片面和模糊,尤其是对于流量者一块!比如有站长对小编说:“我理解的盗链就是A网站上的图片 视频或者下载资源被爬虫爬去放到了B的网站上,用户访问B网站上的这些链接,流量就算在了A头上。这不是正好提升了A网站的流量吗,继而广告联盟等费用也会增加。为什么还要防盗链呢?”
对于这个问题这位站长说的流量增加是必须的,广告联盟费用增加基本上是不会的。小编分成两种情况来说一下
第一种。即你理解的所指出的那种情况。
一般都是视频网站的【分享】,注意,是分享,不是盗链,因为是直接调用的分享链接,所以播放的内容均由视频网站提供,与官网上播放内容并无二致。所以这种情况,是不会给视频网站带来任何损失,只会带来更多收益。严格来说,这根本不属于盗链,这种分享是视频网站官方提供的也正是它们希望的。至于直接引用其他网站超链接,那是纯粹给其他网站引流,和前面分享的效果一样。
第二种。这就是我要说的规规矩矩的盗链了。
先说上面说过的视频类。这类盗链是从源头重新解析(多是VIP代理解析)视频,得到的就是纯视频信息的链接,加上第三方的播放器进行解码播放,就实现了免费、付费视频的无广告播放,这样很显然就已经让视频网站在这部分只有支出没有收益了。另外,更多的VIP代理解析都会在第三方播放器代码中加入自己的浮窗广告、隐藏点击广告等来为自己赚取收益。
图片类和音频类就更不用说了,盗链起来也是非常简单的。一般网站如果不对这些资源的防盗进行专门处理,资源的直链就是任人宰割的羔羊,白白承担流量带来的费用,不会有任何收益,同时被盗链的网站负载也会变大、用户体验也会变差,并且通常还找不出是谁盗链的。像各种网盘,例如百度网盘之类的都刻意对文件的直链做了各种隐藏的工作,不过要找到直链也不是问题,不过也会加入一些时效的参数,让直链并不能存活太久。所以打网盘直链主意的人不少,真正做到的却不多。
关于广告联盟。广告联盟的网页广告的链接都是放在网页代码上的,和资源的链接是分离的。即使是视频网站,也是他们自己的播放器在呈现给用户的时候将广告、水印和视频整合在一起的。
盗链的终极目标就是两个,一是分离资源和广告,只要资源,二是尽量能长期稳定地调用。
关于盗链现状。对于普通的网站,小图片产生的流量肯定是负担得起的,高清的图片、音频、大型文档、软件包等大规格文件的下载分发对一般的小站长来说,流量是个无底洞,是无法承担的。除了像华军下载那些老牌或新起的大牌网站才有自己的CND下载分发服务外,几乎所有的下载分发站点(特别是软件站)都是采用的第三方服务器提供的下载,其中以百度网盘分享链接居多,其次就是盗链,但个人感觉还不算泛滥,拥有自己下载分发服务器的那些网站也会在文件里加上自己网站的各种广告(包括但不限于在图片和视频中加广告、在压缩包备注中加网站广告、在每个文件夹中加入网站的各种超链接等行为)再加上一定的防盗链措施,大家就也懒得盗链他家的资源了,毕竟谁也不愿意跟别人免费打广告。
说了什么是盗链和盗链危害以及站长对盗链的一些片面理解,我们还是要说到重点就是盗链如何防止呢?
可以从以下几个方面来进行盗链防盗:
方法1:判断引用地址
通过判断浏览器请求时HTTP头的Referer字段的值,这个值在asp.net里面可以用Request.UrlReferrer属性取得。几个例子来说,在正常情况下当用户在浏览 http://uushare.com/abc.html 时点击一个链接去到 http://uushare.com/jacky.mp3 文件时,浏览器在发出请求jacky.mp3 资源时还会附带当刻浏览器所处的页面地址(即http://uushare.com/abc.html),所以当你的网站程序接收到下载 jacky.mp3 资源请求的时候,先判断http的referer字段的值,如果是从自己的域名(uushare.com)过来的,则可以认为是合法的连接请求,否则就返回一个错误的提示信息。
这种方法通常用于图片、 mp3这种容易被人用html“嵌入”到其他网站的资源,使用这种方法可以防止你的图片直接出现在别人的网页里(或者防止mp3直接被其他网站嵌入到 flash播放器里),不过访客使用下载工具还是可以轻松下载,因为现在的下载工具一般会自动用你的域名构造一个引用地址,所以如果想再进一步防范的话,可以使用一个对应表限制每个资源的引用地址,例如将 jacky.mp3 的引用地址限制为 http://uushare.com/abc.htmlid=12345,这样下载工具就不太可能构造一个“正确”的引用地址了。
方法2:使用POST下载
客户端浏览器请求资源都是使用HTTP的GET方法的,其实使用POST方法也可以往客户端返回数据。所以可以将下载链接换成一个表单(Form)和一个按钮(Submit),将待下载的文件的名称或id放到表单的一个隐藏文本框(Input)里,当用户点击提交按钮时,服务程序先判断请求是否为 POST方式,如果是则读取目标资源的二进制数据并写入响应对象(在asp.net里是respone.BinaryWrite方法)。
使用这个方法的缺点同样是无法使用下载工具,更没法实现断点续传。 不过比方法2,3好一点的是,下载工具不会拦截你的下载动作,所以正常用户还是比较顺畅地下载到文件。这个方法比较适合小文件的下载。
方法3:使用图形验证码
使用这个方法可以保证每次下载都是“人”在你的网站上下载,而不是下载工具。因为网上很多介绍使用图形验证码的方法,所以这里就不再重复了。这个方法的缺点是比较容易让正常的用户感到麻烦。
方法4:使用登录验证
这个方法常见于论坛、社区。当访客请求网站上的一个资源时,先判断此请求是否通过登录验证(在asp.net里常用session或form验证来记录登录状态),如果尚未登录则返回一个错误提示信息。使用这个方法还可以进一步判断登录的用户的权限是否足够,以实现带“权限”的下载。
不过因为登录状态依赖于会话id,而会话id往往储存于http请求的cookie字段里,下载工具一般没法获得浏览器的cookie字段,所以这些资源往往无法使用下载工具来下载,给正常合法用户带来诸多不便(因为大部分网民的系统都安装了下载工具,一点击下载链接一般会被下载工具拦截,导致无法使用浏览器本身的下载功能)。简单的解决方法是将这个session id放到URL中。
这种方法的另外一个缺点是访客无法匿名下载,所以这个方法一般只用于论坛和社区网站。
方法5:使用cookie
其实这种方法原理上跟方法2差不多。就是在显示“下载”链接的页面里产生一个动态值的cookie,然后在处理资源下载请求时先判断cookie里有没有正确的cookie,如果没有则返回错误提示信息。至于这个动态值如何产生,只要能逆向判断动态值是否合法的都可以,例如将当前的时间去除秒数取哈希值(也叫散列值)。如果网页程序是asp.net则更简单,可以往Session里随便存一个字符串或数字,然后在处理下载请求时先检查Session 里是否存在这个字符串或数字。使用这个方法的缺点跟方法2一样。
方法6:使用动态文件名
也叫动态钥匙法,当用户点击一个下载链接时,先在程序端计算一个Key(使用一定规律产生的Key,最好不要使用随机字符串例如GUID,并且这个 Key必须有一定时效的),然后在数据库或Cache里记录这个Key以及它所对应的资源ID或文件名,最后让网页重定向一个新的URL地址,这个新 URL地址里需要包含这个Key。当浏览器或下载工具发出下载请求时,程序先检测这个Key是否存在,如果存在则返回对应的资源数据。
使用这个方法的好处是下载工具也可以下载,并且在Key失效前可以断点续传,并且可以通过Key来控制下载的线程数。
使用这个方法(包括以上所有支持下载工具的方法)的缺点是:当任意一个用户下载成功之后,你的资源就会被一些下载工具列入“资源候选名单”,以后其他人在其他地方下载同样的文件时,下载工具会不断连接你的服务器,即使你的文件已经删除或者Key已经失效了,这样会造成类DDos攻击的后果,下面再介绍两个即可以让下载工具下载,又可以防止盗链的方法。
方法7:擅改资源的内容
一般热门的资源都是电影、mp3、较大的压缩包等,这些文件都是有很多可以插入数据的地方的,例如mp3有一个tag区,rar/zip有一个备注区,电影的内容随便一个地方,只要在下载过程当中,动态地往这些地方注入一些随机的字节(几个字节即可),就可以达到让整个文件的哈希值(即散列值、指纹值)发生改变,让从你网站下载的文件的哈希值跟别人的不一样,就可以防止下载工具主动找上门了。用这个方法配合方法6,可以达到较好的防盗链的效果。缺点是,虽然文件被修改的部分不会被“看”、“听”出来,不过多多少少让知道的人觉得不爽。另外就是如果别人把从你网站下载的文件放到其他网站,那么仍然存在下载工具主动找上门的情况(虽然实际上它下载不了内容)。
方法8:打包下载
这个方法跟方法7的道理是一样的,只不过这次不是往原始文件里修改,而是在原始的文件基础上再加个“外壳”,让资源的哈希值跟别人的不一样。使用这个方法可以在不擅改资源原始的内容基础上实现方法6同样的效果,并且狠一点的话,甚至可以在打包的时候放入自己的一些广告。缺点是用户每次下载都得加压缩,不过目前大部分人都懂得解压,所以这个缺点有时可以忽略不计。
本文属于原创文章!版权归甲爪广告联盟所有 文章由日付广告联盟编辑整理!原文链接:http://www.jiazhua.com/wz/948.html
更多相关文章推荐