LAMP 2.5 Apache禁止解析php
某个目录下禁止解析 php,这个很有用,我们做网站安全的时候,这个用的很多,比如
某些目录可以上传文件, 为了避免上传的文件有木马, 所以我们禁止这个目录下面的访问解
析 php.
安装目录下有个data目录,查看一下他的权限。
ll /data/www/data/
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>
用户访问就会解析成功,信息就会泄露。就有被攻击的危险。