2014-10-09 127 views
0

我見過幾個教程IIS下解釋爲FastCGI的推薦設置的open_basedir爲指向的網站(S)的內容所在的文件夾或網絡路徑PHP安裝目錄。爲什麼在IIS上使用open_basedir和PHP作爲FastCGI?

當我在應用程序服務器上設置open_basedir時,管理文件時出現以下錯誤: 警告:open_basedir限制生效。文件(C:\ Windows \ Temp \ php92E7.tmp)不在允許的路徑中:(C:\ inetpub \ wwwroot)

我知道我可以在inetpub下設置一個temp diretory,但我沒有看到爲什麼使用windows \ temp是一個問題。

是否有與PHP任何安全漏洞作爲FastCGI的IIS上的open_basedir限制的要求呢? 如果不是,它爲什麼會推薦?還是沒有必要?

+0

你真的希望能夠以安裝Web根目錄之外的可執行文件? – 2014-10-09 12:55:07

回答

2

設置open_basedir(不僅在具有IIS的Windows上,而且在任何Web服務器上具有任何平臺)是一種安全措施,用於限制應用程序可以讀取,寫入,包括和包括的文件。

它不是一個真正的安全漏洞PHP可以包括在文件系統中的任何地方使用PHP代碼的任何文件,但它是一個功能。例如,你可能在web根目錄上有一些文件,而在web根目錄下有其他文件(它們將不能被Web服務器訪問,但是它們可以被PHP訪問)。

但是,如果你在你的程序中的漏洞,用戶可能無法讀取或包括(甚至寫),這是不是你的應用程序的一部分文件。這些可能是系統文件,用戶上傳的文件或其他應用程序的文件。這就是爲什麼open_basedir很重要。

作爲一個說明,設置後的open_basedir,也爲其他PHP函數的路徑(例如,upload_tmp_dir),因爲它們應該還open_basedir的路徑之下。