Nginx/Apache下如何禁止指定目录运行PHP脚本

运维 系统运维
网站程序的上传目录通常是不需要PHP执行解释权限,通过限制目录的PHP执行权限可以提网站的安全性,减少被攻击的机率。

网站程序的上传目录通常是不需要PHP执行解释权限,通过限制目录的PHP执行权限可以提网站的安全性,减少被攻击的机率。

[[171890]]

下面和大家一起分享下如何在Apache和Nginx禁止上传目录里PHP的执行权限。

  • Apache下禁止指定目录运行PHP脚本

在虚拟主机配置文件中增加php_flag engine off指令即可,配置如下

<Directory ~ "/website/uploads">  
  Options FollowSymLinks  
  AllowOverride None  
  Order allow,deny  
  Allow from all   
  php_flag engine off  
</Directory>  

  • Nginx下禁止指定目录运行PHP脚本

Nginx更简单,直接通过location条件匹配定位后进行权限禁止。

在server配置段中增加如下的配置

如果是单个目录

location ~* ^/uploads/.*\.(php|php5)$ 
{  
deny all;
}   

如果是多个目录

location ~* ^/(attachments|uploads)/.*\.(php|php5)$ 

deny all
}   

注意:这段配置文件一定要放在下面配置的前面才可以生效。 

location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;

最后给一个完整的配置示例 

location ~ /mm/(data|uploads|templets)/*.(php)$ {
deny all;
}
location ~ .php$ {
try_files $uri /404.html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;

配置完后记得重启Nginx生效。

 

责任编辑:未丽燕 来源: 运维之美
相关推荐

2019-02-12 09:10:53

2009-06-29 13:57:28

linuxapachephp

2011-03-21 13:59:44

Apachemysqlphp

2011-03-09 10:50:27

Linuxapachephp

2023-03-02 23:45:23

linux开机启动Windows

2010-05-10 08:30:00

PHP-FPMnginx

2013-06-05 10:44:20

2011-03-08 11:11:38

LinuxLAMP安装

2011-03-08 11:11:38

LinuxLAMP安装

2010-07-05 10:05:05

Nginx限速IP目录

2021-02-25 08:00:00

WindowsWindows 10开发

2021-08-09 09:00:00

Kubernetes云计算架构

2009-10-10 17:02:55

2009-12-03 20:15:02

PHP rmdir()

2011-03-08 11:22:29

LinuxLAMP

2009-11-26 09:38:18

Suse Linux

2017-12-27 10:18:09

ApacheNginx服务器

2011-03-08 10:56:56

LinuxLAMP安装

2018-04-10 10:32:07

NginxApache服务器

2018-05-22 09:47:07

点赞
收藏

51CTO技术栈公众号