我们来自五湖四海,不为别的,只因有共同的爱好,为中国互联网发展出一分力!

apache解析漏洞及修复方法

2013年04月14日23:37 阅读: 18656 次

apache对文件后缀的解析方法是”.”后边的都是后缀,从后到前,如果后缀无效,会解析前一个,例如 1.php.x1.x2.x3 他会先解析x3,不存在解析x2,不存在解析x1,都不存在就只能解析php了。如图:

 

定义后缀,但是不可能所有后缀都定义吧?x1.x2.x3可以换成任意后缀

例如1.php.a,.a没有定义,apache不明白a是什么后缀,就向前解析,也就是去解析php。

用伪静态能解决这个问题,重写类似.php.*这类文件

打开apache的httpd.conf

找到LoadModule rewrite_module modules/mod_rewrite.so

把#号去掉,重启apache,在网站根目录下建立.htaccess文件,代码如下:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .(php.|php3.) /index.php
RewriteRule .(pHp.|pHp3.) /index.php
RewriteRule .(phP.|phP3.) /index.php
RewriteRule .(Php.|Php3.) /index.php
RewriteRule .(PHp.|PHp3.) /index.php
RewriteRule .(PhP.|PhP3.) /index.php
RewriteRule .(pHP.|pHP3.) /index.php
RewriteRule .(PHP.|PHP3.) /index.php
</IfModule>

可能会误杀,对我来说暂时也没发现误杀。根据自己要求修改自己定义的执行php的后缀,用|隔开就行。 /index.php可以换成你想要显示的文件.

效果如图:

 

 

分享到: 更多
蓝客门户
©2001-2017 中国蓝客联盟 版权所有.
关于蓝客联盟历史宗旨章程技术服务联系我们蓝客社区