我已經在 IIS6 上安裝了 PHP5 (FastCGI),只是想知道 PHP 使用哪個 Windows 使用者來存取檔案系統?
以 ASP.NET 為例,ASPNET 帳戶用於存取檔案系統。但是 PHP 怎麼樣?
我讀過一些郵政這表明它使用匿名(即 IUSR)帳戶。但如果我授予 IUSR 帳戶寫入權限,這不是安全漏洞嗎?
謝謝!
答案1
Craig 是對的,IIS6 默認情況下將以 NETWORK SERVICE 帳戶運行;在 test.php 中使用 PHPinfo 是診斷此問題的好方法。
我在部落格中介紹了 IIS 中運行的程式碼的“身份”這裡按作業系統
希望有幫助。
戴夫
答案2
我想它會使用您運行 IIS 服務的任何用戶。但這裡有一個快速簡單的方法可以找出答案:
將以下行放入名為 test.php 的檔案中: <?php phpinfo(); ?>
將test.php放在IIS文檔根下,在瀏覽器中查看
在輸出中尋找包含使用者名稱的行,它肯定在某個地方。
答案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 帳戶下“運行”。