配置防盗链
通过限制referer来实现防盗链的功能
- 编辑虚拟机文件
在/usr/local/apache2.4/conf/extra/httpd-vhosts.conf中添加如下配置代码:
<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测试
curl -x127.0.0.1:80 111.com/111.jpg -I
模拟referer测试:
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
访问控制之Directory
例如访问日志目录等隐私目录避免外部访问,访问控制下更安全
- 编辑虚拟机配置文件
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
- 在/data/wwwroot/111.com/ 目录下创建/admin/目录
[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
访问控制之FilesMatch
例如访问日志文件等隐私文件避免外部访问,访问控制下更安全
- 编辑主配置文件
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/556