LAMP 2.5 Apache禁止解析php

某个目录下禁止解析 php,这个很有用,我们做网站安全的时候,这个用的很多,比如

某些目录可以上传文件, 为了避免上传的文件有木马, 所以我们禁止这个目录下面的访问解

析 php.

安装目录下有个data目录,查看一下他的权限。

ll /data/www/data/

LAMP  2.5 Apache禁止解析php

apache运行的用户就是daemon。属主改成daemon因为在daemon下生成文件。

例子:

在论坛里发个帖子,上传本地图片。

查找这个图片。

ls /data/www/data/attachment/forum/201512/09/

52365dsf89t55s.jpg

data目录可以被用户写,用户上传个木马文件被执行,就会很危险。我们应该做些限制。

打开虚拟机配置文件

vim /usr/local/apache2/conf/extra/httpd-vhosts.conf 

插入

<Directory /data/www/data>
php_admin_flag engine off
<filesmatch "(.*)php">
Order deny,allow
Deny from all
</filesmatch>
</Directory>

说明:php_admin_flag engine off 这个语句就是禁止解析 php 的控制语句,但只这样配

置还不够,因为这样配置后用户依然可以访问 php 文件,只不过不解析了,但可以下载,用

户下载 php 文件也是不合适的,所以有必要再禁止一下。

检测是否正确,重启

apachectl -t
/usr/local/apache2/bin/apachectl restart

在/data/www/data下写一个php文件试试能不能解析

vim /data/www/data/info.php
<?php
phpinfo();
?>

在浏览器里输入

http://www.denny.com/data/info.php

错误403

把禁止解析php的文件写成

<Directory /data/www/data>
 php_admin_flag engine off
#  <filesmatch "(.*)php">
#   Order deny,allow
#   Deny from all
#  </filesmatch>
</Directory>

用户访问就会下载这个php文件。

如果全部注释掉

#<Directory /data/www/data>
#php_admin_flag engine off
#  <filesmatch "(.*)php">
#   Order deny,allow
#   Deny from all
#  </filesmatch>
#</Directory>

用户访问就会解析成功,信息就会泄露。就有被攻击的危险。