请大家仔细看,仔细研究完美的方案
我这里说的windows 开的全能空间是指至少同时支持asp,PHP,.net的安全的虚拟主机空间!
大家都知道开设安全的ASP,PHP只需要同时给每个站点设置独立的GUEST组的匿名用户访问权限,然后在给其目录设置相应的权限,即可达到一定程度的安全,也能限制FSO的使用权限,这个方案应该是大多数服务器管理员常用的方法!也应该是目前所有虚拟主机常用的方法!但是按照此方法开通支持ASP.NET的空间,则会出现NET程序无法运行的情况,因为NET使用的访问策略与其他脚本是不一样的,NET的访问需要有aspnet_wp.exe访问某ASP.net文件的权限! 一个目录如果具有 administrators组(完全),system组(完全) ,GUSET组某匿名用户(完全),这样的访问权限,aspnet_wp.exe当然是访问不到了.因为运行aspnet_wp.exe 的是USER组的成员,前面讲到的那个目录没有user组的访问权限,肯定是不行的!这样很多朋友为了能使空间支持ASP.NET 就把空间的的访问权限又加上了一个USER组(读,运行),这样的权限!这样能运行net程序是没问题的,(因为运行aspnet_wp.exe的用户就属于USER组)安全不安全咱们暂且不讨论,大家想一下现在aspnet_wp.exe目前只对这个目录具有(读,运行)的权限,并不包含写入和修改的权限,所以如果是asp.net的数据库网站是无法正常运行的,因为无法对数据库进行添加删除和修改!话又说回来,其实这样也是不安全的,大家可以尝试从另外一个站点拿一个ASP木马,直接访问刚才设置的目录,看是不是能读取里面的文件!至于有的朋友给这个目录加USER组(完全)的权限,更是行不通的这样别人可以很轻易的拿个asp的FSO木马或者一个ASP.NET的IO木马跨目录对文件进行操作了!如果大家对自己的客户负责,对服务器的安全负责,我想这个办法是不好用的,也建议不要用的!那么如何使空间运行ASP.NET呢!有的人说禁止net的io访问,其实我觉得这样就不能发挥NET作用了,很多人也不喜欢用这样的net虚拟主机了,如果干脆把服务器的net禁止了我想大多数人也是不愿意的!直接说一下我是怎么设置安全的NET的!
一:给每个需要支持net的站点开设独立的池,每个池上设置单独标识的属于IIS_WPG组的单独用户!
二:按照开asp空间的办法开设站点!1.新建属于GUEST组的用户,设置站点目录的权限,设置IIS匿名用户访问的权限!
三:设置网站的运行池为新建的池,设置网站目录的权限包含新建的IIS_WPG组的这个用户!
只有以上三步才可以在IIS6.0上开设最安全的net空间,因为iis的池最一开始就是为net设计的!使用上面的办法就能把net运行的权限独立开来,即使直接访问其他目录也会出现拒绝访问!因为运行net 需要的用户(iis_wpg)也就是iis进程组的用户已经独立开了!设置单独的池是已服务器的资源为代价的,但是这样能最大限度的安全运行asp.net程序!我想也是值得的!但是这样的站点运行asp没任何问题,运行php的话就会出现403拒绝访问!本人在以上面的办法为前提下设置了N种办法也是无法解决!
也许这个应该是windows的一个bug ,至今也没找到完美的办法!
所以我认为,目前网络上所说安全的“全能”空间,是不存在的!我对几大虚拟主机软件做了测试,发现他们的方案也不是完美的,要么不能运行php,要么不能运行asp.net !要么开出来的就不是全能主机!
我写这篇文章的目的,是希望落伍的朋友一起来讨论,大家一起来讨论一个完美的方案!我写的不对的地方也希望朋友指点,大家一起进步!
另外我的主机管理软件也因为这个原因没有发布,因为我是一个喜欢追求完美的人!如果那位有好的解决办法,还请告知,我会修改我的算法
谢谢!
至少6位!