2014-10-09 111 views
-2

我剛剛在使用WAMP Server開發的PHP應用程序中犯了一個錯誤。爲什麼WAMP服務器刪除我的系統文件?

我的WAMP/WWW文件夾位於我的D:\磁盤內,我也有我的個人數據。我的應用程序由於無法生成動態路徑,而刪除了我的所有音樂,我的照片和其他個人文件。

我的意思是......什麼?這怎麼可能?我需要一個恢復工具來恢復這些數據。

如何防止PHP在www的文件夾之外觸摸任何東西,使其不再發生?這是一場災難。

+0

在文件系統上使用適當的權限,將Apache設置爲在對文件系統有限訪問的特定用戶下運行......並且在執行可以刪除整個文件堆的代碼時通常要非常小心。 :) – Fluffeh 2014-10-09 09:55:29

+1

如果WAMP服務器以* you *身份運行,即作爲擁有所有這些文件的同一用戶運行,則它可以執行任何您可以執行的操作。通過讓它作爲一個不同的/較少特權的用戶運行來避免這種情況。我也希望這是一個爲你備份的教訓。 :-3 – deceze 2014-10-09 09:55:34

+0

我這樣做修改文件?或者只需右鍵單擊,然後更改可執行文件的權限? – JuanBonnett 2014-10-09 09:56:58

回答

2

限制PHP可以訪問的文件到指定的目錄樹,包括文件本身。

http://php.net/manual/en/ini.core.php#ini.open-basedir

使用open_basedir限制特定目錄中的文件操作,像這樣(在網站的虛擬主機文件)...

php_admin_value open_basedir "C:/WampDeveloper/Temp/;C:/WampDeveloper/Websites/www.example.com/webroot/" 

但如果你是通過命令行delete一個或bat文件(例如,您沒有直接使用PHP文件功能),解決此問題的唯一方法是將Apache設置爲僅在WAMP文件夾中設置權限的自定義帳戶下運行。

+0

不錯的答案。但要小心,它很容易使WAMPServer以及任何Apache/PHP安裝完全無法使用此參數。 – RiggsFolly 2014-10-10 08:49:31