分享一种asp防盗链的方法

汗,最近几天发现百度快照好像有问题.www.zeroplace.cn这个主域名的快照一直停留在7月20号,而zeroplace.cn这个域名的快照确很快,实在让我郁闷的不行.可能真是降权了.是哪里出了问题,我也不知道.其中有个原因可能是博客很久都没有更新了.唉,没办法,前段时间是比较忙啊.好了废话不说了,这里写篇文章,也算是通知一下蜘蛛我还活着,让它过来看看.一种asp防盗链的方法,包括防图片,下载等的盗链问题.

这种方法其实也不难想到,不知道之前有没有人用这种方法.我想应该是有,不过百度上找到的好像都是千篇一律的都是用 HTTP_REFERER 来进行防盗链.

先说说这个方法为什么可以防盗链吧.假设我有一个图片链接,或者下载链接.再假设这个链接在我自己的网站上,浏览器在请求图片的时候是会在http请求头里面加入refferer的.当然如果这个图片放在别人的网站上,浏览器请求页面的时候也会加入这个,但是这个referer就是别人的页面地址了,域名也是别人的域名.所以只要在服务器上判断这个链接的域名是不是自己的域名就可以知道是不是盗链了.如果是盗链,当然就不用输出正确的数据.

然后,这个方法虽然,也有些不足,就是别人可以通过伪造referer信息来绕过这个防盗链系统.也就是说,虽然他并没有到你的网站上,但是他可以通过发给你一个referer告诉你的防盗链系统"我是从你的网站上发起请求的,请给我正确的数据.".他说了慌.你的防盗链系统确没有察觉,并且返回给他正确的数据.

卖了这么久的关子,那可以开始说我这种防盗链的方法了.其实可以说是上面方法的一种改进吧.通国session来防盗链.具体做法就是,要先在你的head.asp里面加入一个设置session的语句,比如
 

<% session("ppp")="Hello boy" %>

然后在链接里加入这个session的判断,这样就可以知道之前有没有访问过我们的网站了,如果没有这个session那肯定就是盗链.
 

 

这样做的好处在于盗链者不好欺骗,因为不管他怎么伪造,在不访问别的页面的情况下,是不可能伪造出一个session的.如果他要用我们的链,首先就要访问一次我们的网站.

当然这种做法也有他的缺陷的.这种盗链和防盗链肯定是一个永无止境的斗争,只要你能把你的网站显示出来,别人就有办法模防出来.不管哪种防盗链的方法的宗旨肯定是维护自己的资源,增加对方盗链的难度,这样我们的目的就达到了.如果你的验证设计的足够巧妙的话,对方想要盗链也是有难度的.



文章来自: 本站原创
Tags:
评论: 0 | 查看次数: 6703