经过限制referer来实现防盗链的功能php
在/usr/local/apache2.4/conf/extra/httpd-vhosts.conf中添加以下配置代码:apache
<Directory /data/wwwroot/www.123.com> SetEnvIfNoCase Referer "http://111.com" local_ref //白名单 SetEnvIfNoCase Referer "http://aaa.com" local_ref //白名单 SetEnvIfNoCase Referer "^$" local_ref //空的referer <FilesMatch "\.(txt|doc|mp3|zip|rar|jpg|gif)"> //文件匹配格式 Order Allow,Deny //不经过规则 Allow from env=local_ref // 经过规则 </FilesMatch> </Directory>
/usr/local/apache2.4/bin/apachectl graceful
curl -x127.0.0.1:80 111.com/111.jpg -I
模拟referer测试:vim
curl -e "http://www.qq.com/123.txt" -x127.0.0.1:80 111.com/111.jpg -I
referer模拟成111.com测试成功访问安全
curl -e "http://111.com/111.jpg" -x127.0.0.1:80 111.com/111.jpg -I
例如访问日志目录等隐私目录避免外部访问,访问控制下更安全curl
vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
<Directory /data/wwwroot/111.com/admin/> Order allow,deny //排序表示先执行deny仍是先执行allow. Deny from all //拒绝选项 Allow from 127.0.0.1 //容许来源 </Directory>
注意:Order表示排序,决定是先执行下行 deny①仍是先allow②,allow表示容许的来源ip测试
/usr/local/apache2.4/bin/apachectl graceful
[root@yolks2 ~]# cd /data/wwwroot/111.com/ [root@yolks2 111.com]# ls 111.jpg admin.php index.php [root@yolks2 111.com]# mkdir admin [root@yolks2 111.com]# ls 111.jpg admin admin.php index.php [root@yolks2 111.com]# vim admin/index.php [root@yolks2 111.com]# cat !$ cat admin/index.php <?php echo "this is test admin/index.php"; ?>
curl -x127.0.0.1:80 111.com/admin/index.php -I
例如访问日志文件等隐私文件避免外部访问,访问控制下更安全this
vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
<Directory /data/wwwroot/www.123.com> <FilesMatch "admin.php(.*)"> Order deny,allow Deny from all Allow from 127.0.0.1 </FilesMatch> </Directory>
curl -x127.0.0.1:80 111.com/admin/index.php -I
几种限制ip的方法 http://ask.apelearn.com/question/6519
apache 自定义header http://ask.apelearn.com/question/830
apache的keepalive和keepalivetimeout http://ask.apelearn.com/question/556url