一、配置防盗链

1、作用:不让别人盗用网站资源,本节通过限制referer来实现防盗链的功能。

2、编辑虚拟主机内容:

<VirtualHost *:80>
DocumentRoot "/data/testphp/111.com
ServerName 111.com
ServerAlias www.example.com 2111.com.cn
<Directory /data/testphp/111.com>
SetEnvIfNoCase Referer "http://111.com" local_ref
SetEnvIfNoCase Referer "http://aaa.com" local_ref
SetEnvIfNoCase Referer "^$" local_ref
<filesmatch "\.(txt|doc|mp3|zip|rar|jpg|gif)">
Order Allow,Deny
Allow from env=local_ref
</filesmatch>
</Directory>
ErrorLog "logs/111.com-error_log"
SetEnvIf Request_URI ".*\.gif$" img
SetEnvIf Request_URI ".*\.jpg$" img
SetEnvIf Request_URI ".*\.png$" img
SetEnvIf Request_URI ".*\.bmp$" img
SetEnvIf Request_URI ".*\.swf$" img
SetEnvIf Request_URI ".*\.js$" img
SetEnvIf Request_URI ".*\.css$" img
CustomLog "|/usr/local/apache2/bin/rotatelogs -l logs/111.com-access_%Y%m%d.log 86400" combined env=!img
</VirtualHost>

3、测试

1)当我们把空referer注释掉时,不允许空referer访问,即直接以111.com/4.png访问时为403。

 

2)同样当有referer时,但因为http://ask.apelearn.com不在白名单中,所以是403,将http://ask.apelearn.com加入白名单,就可以访问了。

即加入SetEnvIfNoCase Referer "http:///ask.apelearn" local_ref,从日志看访问成功

3)curl 测试  ,curl -e "http://aaa.com/123.txt" -x127.0.0.1:80 111.com/4.png -I ,也可以 -e 模拟referer,通过日志可以看到referer分别为www.qqq.com和www.aaa.com/123.txt。

二、访问控制Directory

1、主要是通过IP白名单来限制访问网站的来源IP。

2、编辑虚拟主机内容,在原来内容基础上增加以下内容:

<Directory /data/testphp/111.com/admin/>
Order deny,allow
Deny from all
Allow from 127.0.0.1
</Directory>

3、创建admin目录,模拟网站后台,创建index.html文件。

mkdir -p /data/testphp/111.com/admin
[root@wangbing 111.com]# vim -p /data/testphp/111.com/admin/index.html

4、测试

可以发现127.0.0.1能够访问,192.168.134.160无法访问。从日志可以看出无法访问的源IP时192.168.134.150。

三、访问控制FilesMatch

1、作用:对网站单个链接做限制。

2、编辑虚拟主机内容,在原有内容基础上增加以下内容:

<VirtualHost *:80>
DocumentRoot "/data/testphp/111.com
ServerName 111.com
ServerAlias www.example.com 2111.com.cn
<Directory /data/testphp/111.com>
<FilesMatch admin.php(.*)>
Order deny,allow
Deny from all
Allow from 127.0.0.1
</FilesMatch>
</Directory>

3、测试,可以发现当192.168.134.160访问http://111.com/admin.phpindexsfdaf.html时为403,说明被限制,当127.0.0.1访问时404,说明可以访问,但是该链接并不存在。

 

posted on 2018-03-06 20:54  天梭  阅读(174)  评论(0编辑  收藏  举报