我正在通过FastCGI将最新版本的PHP安装到IIS 7.5上,并且所有的说明都指出FastCGI应该通过设置来模拟调用客户端
fastcgi.impersonate = 1
如果我的网站将有这个configuration
我为什么要模仿?
我来自ASP.NET背景,IUSR获得只读权限,应用程序池标识获得任何写入权限。 给予IUSR写入权限通常会打开WebDAV漏洞的大门。 所以我不愿意让PHP像IUSR一样运行。
我找不到很多人问这个问题( 1 | 2 ),所以我觉得我必须要失去一些东西。 有人能为我澄清这个吗?
13个月后,我想重温我自己的问题。 在那段时间,我已经从IIS 6转移到IIS 7.5的半打网站,并configuration我的首选方法。 我只能说网站工作,没有任何安全问题(不是这些网站是stream行的),在我看来,这个设置比learn.iis.net的build议更安全。
为了后人,这里是相关的设置。 在PHP INI中:
cgi.force_redirect = 0 cgi.fix_pathinfo=1 fastcgi.impersonate = 0
在IIS中:
NTFS权限以及在哪里应用它们:
move_uploaded_file将保留上传目录的权限。 这是我发现的权限设置的最大缺点。 IISAPPPOOL\YourApplicationPoolName ) – 授予读取和列表
upload_tmp_dir , session.save_path和error_log 。 我希望这有助于任何决定learn.iis.net说明不理想的人。
请参阅: http : //www.php.net/manual/en/install.windows.iis6.php
模仿和文件系统访问
build议在使用IIS时在PHP中启用FastCGI模拟。 这由php.ini文件中的fastcgi.impersonate指令控制。 启用模拟时,PHP将代表已通过IIS身份validation确定的用户帐户执行所有文件系统操作。
根据文档,它只是允许fastcgi代表客户使用所有相同的权限(在你的情况下,看起来像IUSR帐户)。 换句话说,要执行通常允许客户端(或匿名)自己的凭据的所有操作。 不多不less。 如果没有这一套,我想可怜的fastcgi将会被扼杀。