2010-02-09 60 views
6

我的网络应用在Windows Server 2003下的IIS 6.0中运行,我们都知道在这种情况下,IIS使用用户帐户“网络服务”。向管理员组添加“网络服务”帐户

我碰巧必须允许某个用户在我的网页上执行某些操作,并且该操作需要管理员权限。

最懒的解决方案似乎给管理员组添加了“网络服务”,并且它确实有效。

我的问题是,如何危险这个解决方案是什么,它以什么方式危害我的网络服务器的安全?

+1

可能有一些事情比你更危险。但我怀疑它。 – SLaks

回答

5

这通常是“一个坏主意”。如果这是一个面向公众的服务器,那么这是一个非常糟糕的主意。

你应该做的,这是我们如何处理的问题,如这是沙盒,你需要在另一个进程中进行,如Windows服务已提升权限的具体管理任务。

然后,我们在Windows服务承载远程处理服务器,并与服务无论在命名管道或TCP/IP通讯(如机器到机器,这是在后端专用网络)。

欲了解更多信息,请参阅有关类似的问题这个答案,我留给其他用户:

Windows User Account that executes only IIS7 Provisions

一个更好的方法是永远不会有网络之间的直接通信应用程序和Windows服务,但需要通过中介(如作业或消息队列)。您的低权限应用程序会请求执行管理任务,您提升的特权服务会从队列中读取这些任务并将其执行。

在这两种情况下,您都应该确保您不会超出每项任务的责任。即确保如果任务是在服务器上创建新的Windows帐户,则不允许该新帐户获得比其需要更多的权限。

2

如果我写的,需要箱级admin一些网络功能,我会做,它在自己的应用程序池自己的应用程序,能够紧紧地锁定该应用程序,因为我可以,给该应用程序池指定帐户(一个域资源(如果在Active Directory上)),然后在该框上给予该帐户管理权限。将其保留在自己的应用程序池中可以有效地将其从常规应用程序中锁定。

NT Authority/Network Service与机器上的大量内容进行交互。我无法想出获得网络服务管理权限的任何理由。

1

在任何情况下都不会这样做。

如果添加网络服务来管理组,那么所有匿名用户访问您的Web应用程序会默认与损害潜在的管理员是巨大的。

根据您的问题

我碰巧有允许特定用户到我的网页上执行一些操作,而操作需要管理员权限。

这很好 - 该网页上使用Windows身份验证,使用户一个普通的Windows管理员。现在,他们和所有其他管理员可以执行您设置的任务。