浅谈网站防盗链技术
朋友有个音乐站www.54star.net,让我做的程序,全是320K的mp3,320K的MP3文件通常是普通56kmmp3大小的6,7倍,所以人稍微多些服务器带宽就吃紧。服务器经常是因为带宽不够远程都连接不上,后来经查发现,文件被盗链的严重,自己站几乎都访问不了了。 所以后来就有了这么几次的防盗链战争。本文只讨论在windows平台下通过IIS服务器的防盗技术。
在这里把我的经验和制作方法给大家谈一谈吧。大致把历程经历了如下几个阶段:
一、 初级 -- 经常更换音乐文件及其所在文件夹的名称。
这种方法最简单,最原始,只要发现服务器流量不正常了,就把后台打开点击更新资源地址,程序就自动修改资源名称。这样一来被盗链的地址就马上失效了。
缺点:由于资源够多,更新起来很占服务器资源,时间够长到后来,每更新一次几乎要用一个通宵。而且由于当时程序处理不够周密,每更新一次基本上都会出现一些错误链接。而且一更新了地址照样基本被盗链。
二、普通级 -- 隐藏音乐文件的真实地址,这个方法大家都想到过吧,:) 。制作方法是通过脚本运算或者加密码来给查找真实地址制造麻烦。就拿mp3播放来说吧,我所使用的方法是这样比如play.asp 是播放器页面,在服务器运算的时候放取得真实地址,把这个地址写入session[地址]中保存, play.asp根本不出现这是的资源地址,play.asp下载完成后立即会加载url.asp脚本文件,在url.asp中检测是否有session[地址]有就写如脚本,并且立即清除该值。没有就不作任何输出。这样处理在播放页效果比较好,但是在下载页就不这么好隐藏了,而且只要用户安装了讯雷软件,鼠标移动到播放器上真实地址力马就显示出来了。而且本人认为只要是能给客户端提供正常服务器的,基本上不可能做到隐藏。除非不提供服务。否则随便找个抓包软件一抓就出来了。
三、中量级 -- 用asp.net拦截httpHandlers,该方法和拦截IIS的ISAPI插件基本上是一个原理。作为资源下载站,根本不用隐藏真实地址,就算完全暴露在外,其他站长把地址放到他的站上点击就会失效。原理是:通过链接请求的来路判断是否为盗链。如果来路不符合要求则表示该请求为盗链的,马上终止就可以了。这种方式相对前面两种方法来说防盗技术已经跨越了一个质的飞跃过程了。效果非常好。现在使用这种方式防盗的软件非常多,比如最出名的免费软件re_writer等。但是美中不足的是:如果象54star.net 这样的音乐站,要提供在线试听功能,而经检测播放器请求的来路是空的,也就是说要提供在线试听服务器,必须把来路为空也视为合法。这样一来,盗链的链接通过工具下载或者点右键-》另存为的已经其他站的播放器直接链接也是合法的。没有完全达到防盗的效果。
四、重量级 -- 通过密匙验证,使用的原理和方法三很相识,一样是拦截IIS,但不同的是,拦截的不是来路,而是地址后面的一串参数---经过加密处理后的密匙。其他密匙的原理和现在的在线支付系统一样,在线支付系统后台都要设置一个密码,在你的网站上也要设置一个同样的密码,表单提交来往的过程中判断是否合法全靠它了。使用这种方法防盗链的加密防止通常是这样 密匙 = 加密函数(客户端IP + 密码). 最后生成的地址形如:http://down.54star.net:89/cd/js-bksyjx/02.mp3?5335aaf7dec19388b7bb799dd70482e,问号前面的时候真实地址,后面那串东西就是密匙,判断是否合法就是通过判断它是否正确了。想盗本站资源的难度就形如要去破解一个未知长度,而且随时可以更改的密码是一样的。这种方法可以说在几种防盗技术中可以勘称最完美的了。而且资源服务器和网站服务器可以分开拜访。如果要提供给友情站使用,只需要把密匙告诉他即可。
五、超重量级 -- 经管使用方法四已经几乎达到完美了,但是该防盗方法唯一美中不足的就是性能了。一般下载站都是使用HTTP协议提供下载,IIS的功能很强大,会ASP。NET的都知道其三层结构,其处理机制很庞大。所以,如果仅仅是把IIS当作下载资源服务器的话有些让IIS不堪重负了。象54star.net这个站就发现,只要下载的人稍微一多IIS占用资源非常高,而且IIS的可以并发的数量并不多,只要一超过一定数量,就会出现各种各样的问题。比如提示服务器太忙这种问题你也经常遇到吧。所以在这里推荐给你一个新出品的免费软件:思达防盗链下载专用服务器软件,下载地址是http://54star.net/downserver/,这个软件不仅使用方法四通过密匙的方式来防止盗链。更优秀的是它完全从IIS中脱离了出来,一心一意地处理文件的下载服务器。从下载速度、占用资源已经并发数量等参数来说它都是最优秀的免费软件。我朋友的音乐站自从使用了这套系统以后一下子稳定起来了。所以在这里向大家强烈地推荐使它。另外这个软件是.net1.1写的,所以只能在windows2000,windows2003或者装有.net framework1.1的操作系统上运行。文件非常小,只有54K、无需安装。有什么问题需要询问可以加入这个QQ群:4223611去讨论.
出处:http://blog.csdn.net/myxy82/archive/2007/04/30/1593714.aspx
------解决方案--------------------up
------解决方案--------------------顶
------解决方案--------------------说的很好.我自己用DELPHI开发了一个防盗链,希望大家可以去测试一下效果.
当然是完全免费的且没有任何限制.
http://mhsoft.com.cn/
如果不能下载,请重新刷新一下页面,获取新的DOGID即可.