网站运营
位置:首页>> 网站运营>> IIS6下ASP.NET站点的权限配置

IIS6下ASP.NET站点的权限配置

作者:heero 来源:heero博客 发布时间:2010-06-26 13:12:00 

标签:IIS6,配置,应用程序池

以前我们学校的服务器经常中毒,而且基本上是一个网站中毒而牵连到其他的网站。这无非是服务器的权限配置没做好,让黑客们利用一个大权限用户把整台服务器都给黑了。

其实在NTFS格式的分区下,做权限配置非常简单。

  1. 为每个站点创建一个Windows用户,这个用户仅拥有站点所在目录及其子目录的读写权限。

  2. 把创建好的用户设为对应站点的匿名访问账户,访客就是以这个用户的身份访问网站的。

在这样的规则下,用户A只能操作站点A,用户B只能操作站点B。即使站点A中毒了,由于用户A没有操作站点B的权限,所以站点B不会受影响。

上个月买了VPS后,我也是用这个方法配置现在这个Blog,结果一运行就出错。错误信息的大概意思是无法读取web.config。我初步推断这是ASP.NET的进程用了另外一个用户读取站点中的文件,但由于没有权限而被拒绝访问了。折腾了一番后,终于搞清楚这跟应用程序池有关系。

应用程序池是将一个或多个应用程序链接到一个或多个工作进程的集合的配置。因为应用程序池中的应用程序与其他应用程序被工作进程边界分开,某个应用程序池中的应用程序不会受到其他应用程序池中应用程序所产生的问题的影响。

ASP.NET的站点其实是通过应用程序池的账户来运行的。默认情况下,应用程序池以“Network Service”身份进行操作,而站点目录并没有这个用户的操作权限。

接着,我把应用程序池的账户改成了站点的匿名访问帐号,结果还是出错。原来应用程序池的账户必须具有IIS_WPG组的权限,把匿名访问帐号设置成从属于改组就可以了。

这样设置以后,虽然安全性有所提升,但问题还是有的。原因在于,IIS_WPG组的权限也不小,其中就包括系统盘某些目录的访问权限。确实是没有最安全,只有更安全。欢迎有经验的朋友来指教。

0
投稿

猜你喜欢

手机版 网站运营 asp之家 www.aspxhome.com