我正在通过 FastCGI 将最新版本的 PHP 安装到 IIS 7.5 上,所有说明都说 FastCGI 应该通过设置来模拟调用客户端
fastcgi.impersonate = 1
Run Code Online (Sandbox Code Playgroud)
如果我的网站会有这个配置
我为什么要冒充?
我来自 ASP.NET 背景,其中 IUSR 获得只读权限,应用程序池标识获得任何写入权限。授予对 IUSR 的写访问权限通常为 WebDAV 漏洞打开大门。所以我犹豫要不要让 PHP 作为 IUSR 运行。
我正在使用 IIS7(Windows Server 2008 x64),并且我有一个使用匿名身份验证的网站设置。anon 用户身份配置为 IUSR。该应用程序将文件写入一个文件夹,我向该文件夹授予 IIS_IUSRS 组 RW 权限。这不起作用。我必须明确给予 IUSR RW 权限以允许应用程序写入文件夹。
据我了解,应用程序池标识会自动添加到 IIS_IUSRS 组中。我假设 IUSR(或任何匿名用户身份)也是 IIS_IUSRS 组的隐含成员。情况似乎并非如此。
在进行故障排除时,我使用进程监视器查看对文件夹的访问,并确定网络服务(应用程序池标识)正在模拟 IUSR(这是我所期望的),但是将 RW 权限授予 IIS_IUSRS 组并不允许 IUSR 访问访问文件被拒绝)。
任何人都可以解释 IUSR 是否是 IIS_IUSR 组的成员?
我已经查看了以下文档,但没有找到可靠的答案:
我正在设置一个新的 Web 服务器并尝试使用 Windows Server 2008 R2 中可用的新应用程序池标识(如下所述:http : //learn.iis.net/page.aspx/624/application-pool-identities/ ) 以保护文件夹结构。
但是,即使我在 php.ini 中将 FastCGI 模拟设置为 true,PHP 似乎仍在使用本地 IUSR 帐户 - 如何让 PHP 在应用程序池标识下运行?
有问题的文件夹是 c:\inetpub\wwwroot 之外的共享缓存目录。当我授予 IIS_APPPOOL\DefaultAppPool 修改权限时,PHP 文件无法访问该文件夹,但当我授予 SERVERNAME\IUSR(或用户组)权限时,它们可以访问。
PHP 5.3 是使用 IIS 中的 Web 平台安装程序安装的。
PHP 应用程序正在使用 Zend_Cache,如果这有所不同的话。
我们有一个运行 IIS 7.5 的 Windows 2008 R2 机器,出于安全要求,我们需要将万维网发布服务设置为在 IUSR 下运行。我可以给 IUSR 文件夹权限就好了。但是,当我尝试为要在万维网发布服务下运行的帐户选择 IUSR 时,我收到一条消息,说找不到用户。目前,我们在“本地系统帐户”下运行该服务。任何帮助将不胜感激。