今天一个朋友问到Apache防盗链的效果以及破解Apache防盗链的问题,于是决定就写一写Apache的防盗链。
找到Apache的配置文件,Linux下的位置一般在 /usr/local/apache/conf/httpd.conf
或者apache 2.2 的 /usr/local/apache2/conf/extra/httpd-vhost.conf
添加
SetEnvIfNoCase Referer "^http://www.chinaz.com" local_ref=1 SetEnvIfNoCase Referer "^http://chinaz.com" local_ref=1 <filesmatch "\.(txt|doc|mp3|zip|rar|jpg|gif)"> Order Allow,Deny Allow from env=local_ref </filesmatch> |
其中粗体的是您的网址,如果有多个,就加多行
斜体的是您需要防盗链的文件后缀,中间用|隔开
还一种写法,是用正则的,这种写法在各个版本的apache比较通用。
写法是
SetEnvIfNoCase Referer "^http://.*\.chinaz\.com" local_ref=1 SetEnvIfNoCase Referer ".*\.chinaz\.com" local_ref=1 <filesmatch "\.(txt|doc|mp3|zip|rar|jpg|gif)"> Order Allow,Deny Allow from env=local_ref </filesmatch> |
其中粗体的部分有一点区别,用正则写法, \ 符号代表转义,因为.本身在正则中有自己的作用。
上面说的是Apache防盗链的使用,现在来说Apache防盗链的破解,说简单点Apache防盗链是通过来路来确定用户是否盗链的,如果自己写采集程序的话,我们完全可以利用程序去模拟referer和useragent。