Nginx
防止 nginx 將圖像作為 PHP 腳本執行
我的網站已被上傳包含 PHP 程式碼的圖像的使用者入侵。此程式碼允許上傳文件,並且他上傳了一個惡意 PHP 腳本。
他能夠在此 URL 上使用 GET 呼叫他的“image-php”:
http://mypwnedwebsite.com/image.jpg/.php
如何配置 nginx 以防止這種行為?我的意思是,對於一個簡單的
/.php
,它就像一切都是 PHP 一樣,從我的角度來看這是錯誤的。我實際上有一個“經典”的 nginx 1.6.2 配置,我認為這部分是最相關的:
location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_read_timeout 120; include /etc/nginx/fastcgi_params; }
這應該有效。
location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_read_timeout 120; include /etc/nginx/fastcgi_params; try_files $uri $uri/ /404.html; }
它嘗試查找 $uri,如果不是文件夾,則拋出 404 錯誤。