赋予ASP.NET Web应用程序网络服务帐户读/写权限的危险是什么?

时间:2008-12-17 18:47:22

标签: asp.net permissions service networking

为ASP.NET Web应用程序提供网络服务帐户读/写权限有哪些危险?我必须为我的应用程序需要写入的任何目录执行此操作,例如我的VistaDb数据库的App_Data和一些随机目录,以上传图像和更改文本文件等。执行此操作有什么危险?是否可以将读/写权限授予整个网络服务的Web应用程序?

4 个答案:

答案 0 :(得分:6)

共享主机或在同一服务器上运行多个网站时,会遇到为网络服务帐户授予文件夹写入权限的最大安全风险。

基本上,如果您授予修改权限,则服务器配置为作为网络服务运行的所有其他ASP.NET应用程序(默认情况下都是这样)也将具有对该文件夹的写入权限,这可能被利用。

答案 1 :(得分:2)

执行此操作的危险在于,网络服务是一个共享帐户,在此帐户下运行的任何应用程序或服务都可以访问该目录。

根据您使用的IIS版本,您可以将Web应用程序放在单独的应用程序池中,并使其在不同的用户帐户下运行。然后,您可以专门为该用户授予访问权限,而不是网络服务。这仅适用于IIS 6或更高版本。

答案 2 :(得分:2)

当然,直接危险是网络服务可以读/写这些文件夹,但每个微软 - 此帐户是权限有限的权限最低的计算机帐户。如果您在域中,更好的方法可能是使用域帐户 - 有关这两者的详细信息,请访问http://msdn.microsoft.com/en-us/library/ms998320.aspx

答案 3 :(得分:1)

好的,如果我能弄清楚如何让你的应用程序将文件写入文件系统,因为你授予对整个应用程序的虚拟目录的读/写权限,我现在可以编写一个aspx将您的网站归档,调用它并运行任意代码,包括WMI调用和COM互操作等酷炫的东西。

您是否有足够的时间和资源来证明我不能使用您的应用程序(包括您未编写的部分,例如框架本身)来编写文件到您的网站?为什么不排除设置ntfs权限如此便宜(按时间)的可能性呢?

现在,如果您只向App_Data授予权限,即使我确实将aspx文件写入该文件夹,我也无法调用它,因为App_data文件夹被运行时视为特殊文件夹,不会提供任何文件从那里(以免有人只是通过简单地下载文件来调用http://yourserver.com/app_data/data.mdb并破解你的数据库)。显然,可以使用ADO等来访问App_Data中的这些文件,但这不是安全问题。