[web开发] 防盗链系列一:判断referer来源
2008年07月15日 星期二 16:52
转载请说明该文章来自smallfish博客,
http://hi.baidu.com/smallfish7788,谢谢!
很多个站以及商业站点都为一些盗链都事情烦恼,尤其是一些图片或者mp3歌曲之类的,搜索引擎以及迅雷占用了若干可怜的带宽,甚至服务器不堪重负。根据
自己的经验整理出一些可用都方案出来,希望能有所帮助。
首先从最简单的判断referer开始,假设web服务器为apache(lighttpd/nginx也有相应referer配置)
修改apache/conf/httpd.conf,添加以下一段配置:
SetEnvIfNoCase Referer "^
http://www.abc.com" local_ref=1
SetEnvIfNoCase Referer "^
http://a.abc.com" local_ref=1
<FilesMatch "\.(txt|doc|mp3|zip|rar|jpg|gif)">
Order Allow,Deny
Allow from env=local_ref
</FilesMatch>
重启下apache,简单都防盗链就OK了。你可用尝试下在别的网站引用下自己网站里都图片。
referer原理很简单,就是判断从哪个页面到你现在的文件。上面都配置只是简单的判断下,也可以在里面加上rewrite功能,referer不正
确的重新转到另外的页面或图片,这样显得更为友好。
当然判断referer并不是最有效的方法,只是过滤掉一些简单都盗链,很容易伪造。
请继续关注防盗链系列。