PHP/IIS6使用哪個使用者來讀取/寫入檔案?

PHP/IIS6使用哪個使用者來讀取/寫入檔案?

我已經在 IIS6 上安裝了 PHP5 (FastCGI),只是想知道 PHP 使用哪個 Windows 使用者來存取檔案系統?

以 ASP.NET 為例,ASPNET 帳戶用於存取檔案系統。但是 PHP 怎麼樣?

我讀過一些郵政這表明它使用匿名(即 IUSR)帳戶。但如果我授予 IUSR 帳戶寫入權限,這不是安全漏洞嗎?

謝謝!

答案1

Craig 是對的,IIS6 默認情況下將以 NETWORK SERVICE 帳戶運行;在 test.php 中使用 PHPinfo 是診斷此問題的好方法。

我在部落格中介紹了 IIS 中運行的程式碼的“身份”這裡按作業系統

希望有幫助。

戴夫

答案2

我想它會使用您運行 IIS 服務的任何用戶。但這裡有一個快速簡單的方法可以找出答案:

  1. 將以下行放入名為 test.php 的檔案中: <?php phpinfo(); ?>

  2. 將test.php放在IIS文檔根下,在瀏覽器中查看

  3. 在輸出中尋找包含使用者名稱的行,它肯定在某個地方。

答案3

您需要更改 php.ini:

fastcgi.impersonate = 1;

因此,PHP 使用與 IIS (w3wp.exe) 使用的帳戶相同的帳戶。 (使用者:IUSR)。

答案4

在 IIS6 中,預設工作進程使用者是 NETWORK SERVICE。如果您開啟工作管理員,w3wp.exe 進程可能會以此帳戶執行。

此外,ASPNET 使用者是從 IIS5 繼承而來的。除非您將 IIS6 配置為使用“IIS5 隔離模式”,否則 ASP.NET 也會在 NETWORK SERVICE 帳戶下“運行”。

相關內容