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