网站程序上传目录通常不需要PHP执行和解释权限。 通过限制该目录的PHP执行权限,可以提高网站的安全性,减少被攻击的可能性。
给大家分享一下如何在Apache和Nginx中禁用上传目录中的PHP执行权限。
只需将php_flagengineoff指令添加到虚拟主机配置文件中即可。 配置如下
OptionsFollowSymLinksAllowOverrideNone允许排序,拒绝Allowfromallphp_flag。 engineoffNginx比较简单,直接匹配位置条件,然后停止权限。
在服务器配置部分添加如下配置
如果是单个目录
location~*^/uploads/.*\.(php|.php5)${拒绝全部;}
如果有多个目录
location~*^/(attachments|uploads)/.*\.(php|php5)${Denyall}
注意:该配置文件必须放在下面的配置之前才能生效。
位置~\.php${fastcgi_pass127.0.0.1:9000;fastcgi_indexindex.php;fastcgi_paramSCRIPT_FILENAME$document_root$fastcgi_script_name;includefastcgi_params;includefastcgi_params
位置~/mm/(data|uploads|templates)/*.(php)${拒绝全部;}位置~.php${try_files$uri/404.html;fastcgi_pass127.0.0.1:9000;fastcgi_indexindex.php;fastcgi_paramSCRIPT_FILENAME$document_root$fastcgi_script_name;includefastcgi_params;}
配置完成后,记得重启Nginx才能生效。