博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
11.25 配置防盗链 11.26 访问控制Directory 11.27 访问控制FilesMatch
阅读量:6568 次
发布时间:2019-06-24

本文共 2577 字,大约阅读时间需要 8 分钟。

hot3.png

11.25 配置防盗链

防盗链的功能可以通过限制referer来实现,不是本机服务器所认识的referer,不允许第三方服务器通过链接引用跳转至本机服务器进行访问。

修改虚拟主机配置文件

//定义访问目录 SetEnvIfNoCase Referer "http://def.com" local_ref //设置referer白名单 SetEnvIfNoCase Referer "http://www.def.com" local_ref //设置referer白名单 SetEnvIfNoCase Referer "^$" local_ref //设置referer白名单(空regerer)
//定义防盗链需要防护的文件类型 Order Allow,Deny //访问控制规则 Allow from env=local_ref

空referer:直接在浏览器输入目的域名,则referer为空。

结果测试

154520_6sSo_3804357.png

从浏览器直接访问时(空referer),访问正常

154728_zpsl_3804357.png

170913_Kcyg_3804357.png

经过博客网站进行访问时,博客网站域名没有加入网站白名单,防盗链生效,访问被拒绝

curl -e "http://www.qq.com/123.html" -x 192.168.88.5:80 def.com/test.txt -IHTTP/1.1 403 ForbiddenDate: Sun, 03 Jun 2018 09:19:19 GMTServer: Apache/2.4.33 (Unix) PHP/5.6.32Content-Type: text/html; charset=iso-8859-1

curl -e可以自定义referer,进行模拟测试。

11.26 访问控制Directory

访问控制可以限制一些白名单IP,只有白名单上的IP才可以进行正常访问,否则全部拒绝

修改虚拟主机配置文件

Order deny,allow Deny from all Allow from 127.0.0.1

Order用于定义顺序,上述文件中的顺序为先deny(禁止)后allow(允许),并且和防火墙规则匹配机制不同的是,下方具体规则的先后顺序和真正执行的顺序无关,且会按照从先至后依次全部匹配,按照上述文件的策略顺序,最终只有源IP为127.0.0.1才可以正常访问。

结果测试

[root@linux-5 admin]# curl -x 127.0.0.1:80 def.com/admin/test.php -IHTTP/1.1 200 OKDate: Sun, 03 Jun 2018 11:30:16 GMTServer: Apache/2.4.33 (Unix) PHP/5.6.32X-Powered-By: PHP/5.6.32Cache-Control: max-age=0Expires: Sun, 03 Jun 2018 11:30:16 GMTContent-Type: text/html; charset=UTF-8[root@linux-5 admin]# curl -x 192.168.88.5:80 def.com/admin/test.php -IHTTP/1.1 403 ForbiddenDate: Sun, 03 Jun 2018 11:30:27 GMTServer: Apache/2.4.33 (Unix) PHP/5.6.32Content-Type: text/html; charset=iso-8859-1

虽然-x选项后面的IP地址为目的IP,但是127.0.0.1为主机回环IP,访问时也需要用127.0.0.1作为源IP进行访问,因此满足条件,可以正常访问。同理访问外部网卡地址也需要用外部网卡IP进行访问,不满足访问控制条件,因此无法访问。

11.27 访问控制FilesMatch

有时只需要限制某些访问链接,且访问链接中含有一些特殊符号(?、&等),对整个目录进行限制较不合理,可以使用FilesMatch进行限制。

修改虚拟主机配置文件

Order deny,allow Deny from all Allow from 127.0.0.1

使用.*代指PHP文件后所有特殊符号

测试结果 

[root@linux-5 admin]# curl -x 192.168.88.5:80 def.com/admin.php? -IHTTP/1.1 403 ForbiddenDate: Sun, 03 Jun 2018 11:58:16 GMTServer: Apache/2.4.33 (Unix) PHP/5.6.32Content-Type: text/html; charset=iso-8859-1[root@linux-5 admin]# curl -x 127.0.0.1:80 def.com/admin.php? -IHTTP/1.1 200 OKDate: Sun, 03 Jun 2018 11:58:34 GMTServer: Apache/2.4.33 (Unix) PHP/5.6.32X-Powered-By: PHP/5.6.32Cache-Control: max-age=0Expires: Sun, 03 Jun 2018 11:58:34 GMTContent-Type: text/html; charset=UTF-8

 

转载于:https://my.oschina.net/u/3804357/blog/1823397

你可能感兴趣的文章
海茶3 らぶデス3 入门经典教程
查看>>
pstree命令
查看>>
css选择器顺序的小技巧
查看>>
dojo 学习笔记之dojo.query - query(id) 与query(class)的差别
查看>>
Java基础加强总结(三)——代理(Proxy)
查看>>
一步一步写算法(之hash表)
查看>>
C99规范
查看>>
BZOJ3799 : 字符串重组
查看>>
数据持久化的复习
查看>>
Util应用程序框架公共操作类(八):Lambda表达式公共操作类(二)
查看>>
thinkphp查询
查看>>
iOS开发-Protocol协议及委托代理(Delegate)传值
查看>>
【BZOJ】1105: [POI2007]石头花园SKA
查看>>
MapReduce原理与设计思想
查看>>
Theano学习笔记(三)——图结构
查看>>
UVa - 11400 - Lighting System Design
查看>>
Oracle 11g 客户端使用
查看>>
luvit 被忽视的lua 高性能框架(仿nodejs)
查看>>
也许每个农村出来的码农都有个田园梦
查看>>
J2EE的13种核心技术
查看>>