我最近接到的任務是打開允許可信用戶上傳和存儲的小型網站的子域文件作爲遠離其本地磁盤的備份。通常,這個新的子域將被用來主要存儲靜態的Office類型的文檔(例如Microsoft/OpenOffice文檔,PDF,純文本文件等)。在Apache服務器的子域上禁用可執行代碼(CGI/SSI/PHP/etc)
我想確保一個天真的用戶無意中上傳一個可能致命的文件(例如,一些討厭的PHP腳本。理想情況下,我想關閉PHP和其他任何可能存在安全風險的東西(CGI進程,服務器端包含等)。
我只是想知道,如果堆棧溢出社會可以幫助回答以下問題:什麼是關閉與動態/可執行代碼處理所有類型的文件/進程的最佳途徑,所以在效果的子域只不過是一個基本的靜態文件服務器?
我在Google上看過使用各種關鍵字/短語,但似乎無法找到一個很好的參考,以使子域「安全」,因爲它可以從共享服務器的級別權威。
該網站在典型的LAMP架構上的Apache 2.2上運行,並託管在第三方共享服務器上。
我DO訪問:
.htaccess
(典型的特權/限制目錄級別)php.ini
和.user.ini
(典型的特權/限制目錄級別)- 控制面板軟件一些相當大方的選擇和功能(cPanel X)
- 相當不錯具有優良的技術支持服務xible網絡主機
我DO NOT有機會獲得:(!明明)
- root訪問權限
httpd.conf
php.ini
(應用程序服務器級別)mysql.cnf
請注意,我沒有資源投資文件服務器或將其外包給第三方服務。此外,該服務器不會用於CDN意義上,因此性能並不是真正的問題。
(另外,我不知道什麼可以做關於客戶端腳本,例如JavaScript的/ VBScript中,但任何建議將受到歡迎。)
提前感謝!
謝謝Marc。這是一個非常有用的建議,我將確保將上面的PHP代碼片段保留在我的「工具箱」中。然而,正如我所提到的,這個網站有效地運行着一個業餘愛好者,我不會擁有資源(無可否認,技術能力!)通過其內部ID號存儲文件。 更具體地說,是否有任何指令可以在共享服務器用戶的權限級別輸入,例如在我的根目錄'.htaccess'或本地'php.ini'文件中? –
你需要什麼資源?一個簡單的數據庫記錄文件的元數據(誰上傳,原始文件名,auto_increment ID號碼),你就完成了... –