簡體   English   中英

為什么在 IIS 上使用 open_basedir 和 PHP 作為 FastCGI?

[英]Why use open_basedir with PHP as FastCGI on IIS?

我看過幾個教程,解釋了 IIS 下的 PHP 安裝,因為 FastCGI 建議將 open_basedir 設置為指向網站內容所在的文件夾或網絡路徑。

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

我知道我可以在 inetpub 下設置一個臨時目錄,但我不明白為什么使用 windows\\temp 會出現問題。

PHP作為FastCGI在IIS上是否有任何安全缺陷需要open_basedir限制? 如果沒有,為什么推薦? 還是沒有必要? 是否可以使用具有正確權限的 AppPool Identity 獲得 open_basedir 優勢?

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

PHP 可以在文件系統的任何位置包含任何帶有 PHP 代碼的文件,這並不是真正的安全缺陷,但它是一個功能。 例如,您可能在 web 根目錄中有一些文件,而在 web 根目錄外有其他文件(它們不能被 web 服務器訪問,但它們可以被 PHP 訪問)。

但是,如果您的程序存在缺陷,您的用戶可能能夠讀取或包含(甚至寫入)不屬於您的應用程序的文件。 這些可能是系統文件、用戶上傳的文件或其他應用程序的文件。 這就是 open_basedir 很重要的原因。

需要注意的是,在設置 open_basedir 之后,還要設置其他 PHP 函數的路徑(例如,upload_tmp_dir),因為它們也應該在 open_basedir 路徑下。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM