根据this post,据说如果我使用PHP / Nginx,为了更好的安全性,我应该
cgi.fix_pathinfo = 0
要么
if ( $fastcgi_script_name ~ \..*\/.*php ) {
return 403;
}
在other tutorial它推荐的风格
fastcgi_split_path_info ^((?U).+\.php)(/?.+)$;
它们是否彼此矛盾?任何安全建议?
谢谢.
最佳答案
您指的是an attacker can upload arbitrary code to an nginx web server and then trick the server into executing it as PHP的问题.(此问题不存在CVE,因为从技术上讲,这是一个错误配置而不是漏洞.)
您列出的任何方法都可用于修复the issue.
解决此问题的另一种更简单的方法是将以下内容添加到PHP位置:
try_files $uri =404;
虽然这只有在nginx和PHP在同一台服务器上运行时才有效,但这几乎总是正确的.
当然,建议是你清楚地记录你在做什么以及为什么做.