11.26 访问控制Directory
11.27 访问控制FilesMatch
配置防盗链
编辑虚拟主机配置文件,如下图把111.com aaa.com加入referer的白名单
重新加载,再访问图片,结果发现Forbidden(因为是直接访问图片,并没有referer,所以被禁止)
如何让图片有referer:先在ask.apelearn.com上发一个测试贴
点开超链接发现依然Forbidden,因为ask.apelearn.com并没有加入到referer的白名单中
把ask.apelearn.com加入referer的白名单,并刷新配置文件
再次从ask.apelearn.com*问图片,成功:
空referer; "^$"(开头就结尾),这样可以直接访问
也可以用curl -e "http:// " 指定referer 模拟效果,如下图所示
查看日志的时候由于被切割了,注意按照%y%m%d.log查询
访问控制Directory
如下图所示,再vhost配置文件中加入如下字段
Order定义顺序,先deny还是先allow
admin是后台,创建admin目录,创建index.php
如上面所示 allow from 127.0.0.1所限制的是源IP,而curl -x后面跟的是访问(即目的IP)
curl -x127.0.0.1 111.com/admin/index.php相当于是自己访问自己
curl -x192.168.242.150 111.com/admin/index.php是192.168.242.128访问150,由于没有被加入白名单,所以访问拒绝403Forbidden
访问控制FilesMatch
有时链接是 / admin.php&1=&2= 类似参数,可用FilesMatch匹配
测试:
图中由于访问curl -x127.0.0.1是本身127.0.0.1IP,对111.com/admin/没有做访问链接限制,无论是否在源IP白名单都可以访问,只是路径不存在所以显示404 not found
而 curl -x192.168.242.150的源IP是128,不在白名单中,如果访问限制链接,则403 forbidden, 如果访问非限制路径则同样404 not found
扩展
几种限制ip的方法 http://ask.apelearn.com/question/6519
apache 自定义header http://ask.apelearn.com/question/830
apache的keepalive和keepalivetimeout http://ask.apelearn.com/question/556