今天在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的不足。