PHP + IIS 應用程序池標識 WindowsTemp 權限
我目前在 Win2k8 R2 Web 版伺服器上的 IIS 7.5 上執行 PHP (5.3),並且想知道我可以通過分配讀取、寫入、修改和執行權限來將哪些問題或安全漏洞引入系統%SystemRoot%\Temp 的 IUSR 帳戶或 IIS_USERS 組?
我是否應該更改對該文件夾的權限(正如 Windows 提醒我的那樣,當我嘗試更改它們時我可能不應該這樣做)?
我應該在其他地方創建一個臨時文件夾並相應地設置權限嗎?
問題是當我設置匿名身份驗證(我猜是更安全的選項???)以使用應用程序池身份時,當啟動會話時 PHP 陷入循環,因為它無法在 %SystemRoot% 中創建會話文件\Temp 文件夾由於缺少應用程序池使用者或 IIS_USERS 組的權限。
另一個問題是 ImageMagick(PHP 擴展)被拒絕訪問 %SystemRoot%\Temp 以寫入臨時文件,因此引發異常。
我試過搜尋Google,但沒有找到任何具體涉及這個主題的東西。
非常感謝任何幫助。
將預設臨時文件夾分配給匿名 inet 使用者“修改”權限不是很明智。因此,這不是安全故障,但您正在使針對您的 Web 基礎架構的某些類別的攻擊變得更容易。
一如既往,魔鬼在細節中。只要將無害的數據寫入該文件夾,就沒有特定的風險:文件夾本身與系統上的許多其他位置沒有什麼不同。當然,如果您想為該文件夾上的 IUSR_ 設置權限,這也意味著您打算使用該分配,以便 Web 應用程序可以寫入它。
隨之而來的風險是: - 在該文件夾上擁有“執行”權限會刪除安全層:如果攻擊者找到一種方法將執行檔上傳到臨時文件夾並讓系統執行它,它就會執行。如果你否認“執行”的權利,它根本行不通。- 該文件夾位於系統最敏感部分的頂部:作業系統文件的位置。這意味著,如果有人設法在利用臨時文件的 Web 應用程序中使用目錄遍歷漏洞,他將離系統根目錄和其中所有有趣的東西僅一步之遙。
這些本身都沒有太大的風險,但良好的安全性依賴於深度安全性。在這種情況下,我很確定您可以讓您的 PHP 應用程序使用與系統臨時目錄不同的文件夾來保存其臨時文件。最好將其放在一個單獨的分區中,在 IUSR_* 具有讀/寫訪問權限但沒有執行權限的文件夾中。