IIS7中的托管客户可以使用asp.net和System.Diagnostics列出所有系统的进程ID。他们还可以杀死属于自己的应用程序池的进程。在共享主机环境中,IIS7似乎是一个很大的安全问题。关于如何阻止普通用户访问System.Diagnostics有什么建议吗?如何将其限制为仅限管理员?
发布于 2011-05-11 23:58:04
与Windows2003和IIS6不同,许多共享的Windows2008/IIS7托管环境为他们的客户提供了专用的应用程序池和完全信任。
虽然客户可能能够启动和终止他们自己的进程(包括他们自己的工作进程),但如果站点运行所使用的帐户的身份被锁定,则不会造成真正的危害。另外,如果客户的代码经常终止自己的应用程序池(除了强制重新启动工作进程以允许在需要重新加载某些设置时触发Application_Start类型的事件之外),还有什么好处呢?
我为一家共享主机提供商工作,我们实际上为客户提供了通过我们的管理系统启动、停止和回收他们的专用池的能力,所有他们在代码中所做的事情几乎是一样的。
最糟糕的情况是,客户启动了一个消耗大量内存或过多CPU的进程(但即使是他们自己的ASP.NET代码也可能失控,做同样的事情)。我们会持续监控服务器的异常行为,并在收到警报后的2-3分钟内追查罪魁祸首。最终用户将收到友好的警告,并被告知不要再这样做,如果他们这样做了,那么他们的网站将立即关闭。
我唯一担心的是主机是否在完全信任的情况下运行共享池,但如果他们这样做了,那么他们就有了另一个令人头疼的安全问题需要克服,进程杀死将是他们最不担心的。
https://stackoverflow.com/questions/5963772
复制相似问题