Day 44 Apache访问控制
来源:互联网 发布:div自动调用js函数 编辑:程序博客网 时间:2024/04/29 14:21
11.25 配置防盗链
- 通过限制referer来实现防盗链的功能, 防盗链的作用是,某一特定网站的文件(比如图片),只能通过本网站或设置为白名单referer的网站去访问,其他第三方网站借用不行
- 虚拟主机配置文件/usr/local/apache2.4/conf/extra/httpd-vhosts.conf增加如下内容
<Directory /data/wwwroot/www.123.com>
SetEnvIfNoCase Referer "http://www.123.com" local_ref #将第三方站点加入到referer白名单
SetEnvIfNoCase Referer "http://123.com" local_ref
SetEnvIfNoCase Referer "^$" local_ref #将空referer加入到白名单,空referer指直接访问目标内容,不经过第三方网站(referer)跳转
<FilesMatch "\.(txt|doc|mp3|zip|rar|jpg|gif)">
Order Allow,Deny
Allow from env=local_ref
</FilesMatch>
</Directory>
- curl -e "http://www.aminglinux.com/123.html" #自定义referer
- 编辑虚拟主机配置文件,配置内容如下:
<Directory /data/wwwroot/www.123.com/admin/>
Order deny,allow #访问控制的顺序,先deny,再allow
Deny from all #先deny,此时包括源IP是127.0.0.1的所有IP均被deny
Allow from 127.0.0.1 #后allow,此时源IP若是127.0.0.1则又被allow
</Directory>
- /usr/local/apache2.4/bin/apachectl –t #检查配置文件的语法
- /usr/local/apache2.4/bin/apachectl graceful #重新加载配置
- curl -x127.0.0.1:80 /www.123.com/admin/index.php #curl命令测试,命令中“-x”后面的127.0.0.1是目标IP,要访问该目标IP,那么源IP同样需要是127.0.0.1,状态码为200 OK
- curl -x127.0.0.1:80 /www.123.com/admin/aaa #如果admin子目录下并不存在aaa文件,那么测试状态码为404(Not Found)
- curl -x192.168.127.150:80 /www.123.com/admin/index.php -I #此时目标IP是192.168.127.150,那么访问该目标IP的源IP是192.168.127.131(通过检查日志可查看到源IP),此时状态码是403(Forbidden),被限制访问了
- 虚拟主机配置文件配置内容如下:
<Directory /data/wwwroot/www.123.com>
<FilesMatch "admin.php(.*)">
Order deny,allow
Deny from all
Allow from 127.0.0.1
</FilesMatch>
</Directory>
- /usr/local/apache2.4/bin/apachectl –t #检查配置文件的语法
- /usr/local/apache2.4/bin/apachectl graceful #重新加载配置
- curl -x127.0.0.1:80 '/www.123.com/admin.php?safgjfhdg' -I #curl命令测试,因不存在文件admin.php?safgjfhdg,故状态码为404(Not Found),已经允许访问,只是被访问的文件不存在
阅读全文