Nginx,PHP和fastcgi_split_path_info上的安全问题

根据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在同一台服务器上运行时才有效,但这几乎总是正确的.

当然,建议是你清楚地记录你在做什么以及为什么做.

dawei

【声明】:唐山站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。