在IIS网站的根文件夹上授予IIS_IUSRS完全控制权限的安全影响是什么?
为什么我不能仅向IUSR提供完全控制权限,这是IIS_IUSER组的一部分?
任何答案都澄清了这种冲突,真的很感激 .
很容易混淆IUSR和IIS_IUSRS因为它们的名字,但这些是两个不同的东西:
IIS_IUSRS是IIS工作进程帐户的组 . 这意味着应用程序池本身在其下运行的标识 .
IUSR是匿名用户身份 . 这意味着IIS认为是访问该站点的用户的身份 . 默认情况下,此用户不是IIS_IUSRS组的成员 .
在IIS 7.0中,内置帐户(IUSR)替换IUSR_MachineName帐户 . 此外,名为IIS_IUSRS的组将替换IIS_WPG组 . [...] IUSR帐户类似于网络或本地服务帐户 . 仅当安装了Windows Server 2008 DVD上包含的FTP 6服务器时,才会创建并使用IUSR_MachineName帐户 . 如果未安装FTP 6服务器,则不会创建该帐户 . http://support.microsoft.com/kb/981949
IIS_IUSRS是一个内置组,可以访问所有必需的文件和系统资源,以便在添加到该组时,帐户可以无缝地充当应用程序池标识 .
阅读similar thread,这解释了为什么提供对IIS_IUSRS的访问权限与给予IUSR相同的访问权限有不同的效果:
Here是关于IIS 7中使用的组和用户的良好文档 .
默认情况下,IIS_IUSRS只对wwwroot具有读取和执行(以及结果列表文件夹内容)权限 . 完全控制可能太多了 .
想象一个网站,允许用户上传任意文件,这个文件有一个错误,导致这些文件保存在应用程序目录中 .
在这种情况下,攻击者可以使用任意代码上传aspx文件,覆盖您的web.config文件等 .
最好是只读访问根文件夹,并且只能完全控制您知道不包含可执行代码的特定文件夹,例如App_Data的子文件夹 .
2 回答
很容易混淆IUSR和IIS_IUSRS因为它们的名字,但这些是两个不同的东西:
IIS_IUSRS是IIS工作进程帐户的组 . 这意味着应用程序池本身在其下运行的标识 .
IUSR是匿名用户身份 . 这意味着IIS认为是访问该站点的用户的身份 . 默认情况下,此用户不是IIS_IUSRS组的成员 .
IIS_IUSRS是一个内置组,可以访问所有必需的文件和系统资源,以便在添加到该组时,帐户可以无缝地充当应用程序池标识 .
阅读similar thread,这解释了为什么提供对IIS_IUSRS的访问权限与给予IUSR相同的访问权限有不同的效果:
Here是关于IIS 7中使用的组和用户的良好文档 .
默认情况下,IIS_IUSRS只对wwwroot具有读取和执行(以及结果列表文件夹内容)权限 . 完全控制可能太多了 .
想象一个网站,允许用户上传任意文件,这个文件有一个错误,导致这些文件保存在应用程序目录中 .
在这种情况下,攻击者可以使用任意代码上传aspx文件,覆盖您的web.config文件等 .
最好是只读访问根文件夹,并且只能完全控制您知道不包含可执行代码的特定文件夹,例如App_Data的子文件夹 .