今天在QQ群上,突然有人问“nginx php有关cgi.fix_pathinfo导致文件类型错误解析漏洞“的解决方法是什么,当时就有人提出目前网上出现较多的解决方案:
方法1:
关闭cgi.fix_pathinfo为0
方法2:
if ( $fastcgi_script_name ~ \..*\/.*php ) {
return 403;
}
经过本人测试,方法1不可取,如果关闭,像phpmyadmdin这样需要在二级目录访问的,在登录的时候就会跳转到首页。
方法2能屏蔽大多数情况,但是如果上传的文件是没有后缀名的,那一样是可以运行的
在此,本人使用了第三种方法,加一条
try_files $fastcgi_script_name = 404;
此方法可以杜绝方法1和方法2的不足。