apache限制某个目录解析php
当某个可以被用户上传文件的目录被用户上传php文件后,当访问该文件时,php会对用户上传的php进行解析。为了被防止恶意利用,一般禁止静态文件目录解析php。
- 修改虚拟主机配置文件
禁止解析upload下的php文件
[root@zhounan1 ~]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
##########增加如下行#################
<Directory /data/www/phpems.com/upload>
php_admin_flag engine off
<FilesMatch (.*)\.php(.*)>
Order allow,deny
Deny from all
</FilesMatch>
</Directory>
如果只添加下列两行时也可以禁止php解析,但是用户访问时会直接下载被访问的php文件,事实上不允许这类情况发生,
<Directory /data/www/phpems/upload>
php_admin_flag engine off
- 检查并刷新配置文件
[root@zhounan1 ~]# /usr/local/apache2.4/bin/apachectl -t
Syntax OK
[root@zhounan1 ~]# /usr/local/apache2.4/bin/apachectl graceful
-
创建测试文件
-
测试访问
[root@zhounan1 ~]# mkdir /data/www/phpems.com/upload
[root@zhounan1 ~]# vim /data/www/phpems.com/upload/123.php
#########输入以下行###############
<?
echo "123.phptest";