A. nginx 只讓php入口文件訪問,其他php文件禁止直接訪問
你用的系統是微擎嗎?
正常來說,除了這兩個php文件,和回調用的介面外,其它php都是不能直接訪問的,文件頭有常量判斷,未定義就退出了。
所以你的系統有上傳漏洞,應該檢查是哪裡出了問題,並去修復一下。可以從以下幾點著手:
上傳許可權僅提供給已登錄會員,在上傳介面中判斷未登錄狀態的,直接返回錯誤信息
上傳文件類型限制,如果需要的是圖片,嚴格限制圖片類型,並做圖片規格檢測(gd庫就可以處理),不符合的不保存文件
文件名處理,不要使用客戶端上傳的文件名保存,而是根據規則 生成一個隨機的名字保存
上傳頻率限制(根據會員限制),比如,一個小時內限制上傳5張,一天限制100張,可以有效防止黑客利用上傳介面填充垃圾文件到你的伺服器
如果可行,對上傳文件做一個臨時機制,如上傳的文件先放到臨時文件夾,資料保存的時候,把文件處理一下,移動到正常的附件目錄。這樣就可以定期清理臨時文件夾,防止上傳後沒使用的文件過多佔用伺服器空間。
不過這個功能改起來會復雜一點,要處理所有使用到上傳功能的介面。
以上幾點處理好,被上傳可執行文件的問題基本上可以杜絕了
而你的解決方案,是只治標不治本的方案