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 帐户下“运行”。

相关内容