去掉nginx上传目录中PHP执行权限

发布时间:2021-01-05编辑:脚本学堂
在nginx的配置中,有时需要去除上传目录的php执行权限,原因大家都清楚,这里只介绍php执行权限的去除方法,供大家参考。

LNMP环境下目录权限设置上不如apache,有时网站程序存在上传漏洞或类似pathinfo的漏洞从而导致被上传了php木马,而给网站和服务器带来比较大危险。

建议将网站目录的PHP权限去掉,当访问上传目录下的php文件时就会返回403错误。

如何把lnmp环境下去掉指定目录的PHP执行权限。
首先,编辑nginx的虚拟主机配置,在fastcgi的location语句的前面添加如下内容:

1、单个目录去掉PHP执行权限
 

复制代码 代码示例:
location ~ /attachments/.*.(php|php5)?$ {
deny all;
}
 

将attachments目录的PHP执行权限去掉。

2、多个目录去掉PHP执行权限
 

复制代码 代码示例:
location ~ /(attachments|upload)/.*.(php|php5)?$ {
deny all;
}
 

将attachments、upload这二个目录的PHP执行权限去掉。

附,完整的虚拟主机配置:
 

复制代码 代码示例:
server
{
listen 80;
server_name www.jb200.com;
index index.html index.htm index.php;
root /home/wwwroot/w123;
include discuz.conf;
location ~ /(attachments|upload)/.*.(php|php5)?$ {
deny all;
}
location ~ .*.(php|php5)?$
{
fastcgi_pass unix:/tmp/php-cgi.sock;
fastcgi_index index.php;
include fcgi.conf;
}
access_log off;
}