<p>构建免受 FSO 威胁虚拟主机</p> <p>现在绝大多数的虚拟主机都禁用了 ASP 的标准组件:FileSystemObject,因为这个组件为 ASP 提供了强大的文件系统访问能力,可以对服务器硬盘上的任何文件进行读、写、复制、删除、改名等操作(当然,这是指在使用默认设置的 Windows NT / 2000 下才能做到)。但是禁止此组件后,引起的后果就是所有利用这个组件的 ASP 将无法运行,无法满足客户的需求。<br />    如何既允许 FileSystemObject 组件,又不影响服务器的安全性(即:不同虚拟主机用户之间不能使用该组件读写别人的文件)呢?这里介绍本人在实验中获得的一种方法,下文以 Windows 2000 Server 为例来说明。<br />    在服务器上打开资源管理器,用鼠标右键点击各个硬盘分区或卷的盘符,在弹出菜单中选择&ldquo;属性&rdquo;,选择&ldquo;安全&rdquo;选项卡,此时就可以看到有哪些帐号可以访问这个分区(卷)及访问权限。默认安装后,出现的是&ldquo;Everyone&rdquo;具有完全控制的权限。点&ldquo;添加&rdquo;,将&ldquo;Administrators&rdquo;、&ldquo;Backup Operators&rdquo;、&ldquo;Power Users&rdquo;、&ldquo;Users&rdquo;等几个组添加进去,并给予&ldquo;完全控制&rdquo;或相应的权限,注意,不要给&ldquo;Guests&rdquo;组、&ldquo;IUSR_机器名&rdquo;这几个帐号任何权限。然后将&ldquo;Everyone&rdquo;组从列表中删除,这样,就只有授权的组和用户才能访问此硬盘分区了,而 ASP 执行时,是以&ldquo;IUSR_机器名&rdquo;的身份访问硬盘的,这里没给该用户帐号权限,ASP 也就不能读写硬盘上的文件了。<br />    下面要做的就是给每个虚拟主机用户设置一个单独的用户帐号,然后再给每个帐号分配一个允许其完全控制的目录。<br />    如下图所示,打开&ldquo;计算机管理&rdquo;&rarr;&ldquo;本地用户和组&rdquo;&rarr;&ldquo;用户&rdquo;,在右栏中点击鼠标右键,在弹出的菜单中选择&ldquo;新用户&rdquo;:<br /> &lt;IMG SRC=http://www.163design.net/a/o/&quot;<a href="http://202.100.116.12/paddy/bbsimages/fsosafe/001.gif">http://202.100.116.12/paddy/bbsimages/fsosafe/001.gif</a>&quot; border=0&gt;<br />    在弹出的&ldquo;新用户&rdquo;对话框中根据实际需要输入&ldquo;用户名&rdquo;、&ldquo;全名&rdquo;、&ldquo;描述&rdquo;、&ldquo;密码&rdquo;、&ldquo;确认密码&rdquo;,并将&ldquo;用户下次登录时须更改密码&rdquo;前的对号去掉,选中&ldquo;用户不能更改密码&rdquo;和&ldquo;密码永不过期&rdquo;。本例是给第一虚拟主机的用户建立一个匿名访问 Internet 信息服务的内置帐号&ldquo;IUSR_VHOST1&rdquo;,即:所有客户端使用 <a href="http://xxx.xxx.xxxx/">http://xxx.xxx.xxxx/</a> 访问此虚拟主机时,都是以这个身份来访问的。输入完成后点&ldquo;创建&rdquo;即可。可以根据实际需要,创建多个用户,创建完毕后点&ldquo;关闭&rdquo;:<br /> &lt;IMG SRC=http://www.163design.net/a/o/&quot;<a href="http://202.100.116.12/paddy/bbsimages/fsosafe/002.gif">http://202.100.116.12/paddy/bbsimages/fsosafe/002.gif</a>&quot; border=0&gt;<br /> 现在新建立的用户已经出现在帐号列表中了,在列表中双击该帐号,以便进一步进行设置:<br /> &lt;IMG SRC=http://www.163design.net/a/o/&quot;<a href="http://202.100.116.12/paddy/bbsimages/fsosafe/003.gif">http://202.100.116.12/paddy/bbsimages/fsosafe/003.gif</a>&quot; border=0&gt;<br /> 在弹出的&ldquo;IUSR_VHOST1&rdquo;(即刚才创建的新帐号)属性对话框中点&ldquo;隶属于&rdquo;选项卡:<br /> &lt;IMG SRC=http://www.163design.net/a/o/&quot;<a href="http://202.100.116.12/paddy/bbsimages/fsosafe/004.gif">http://202.100.116.12/paddy/bbsimages/fsosafe/004.gif</a>&quot; border=0&gt;<br /> 刚建立的帐号默认是属于&ldquo;Users&rdquo;组,选中该组,点&ldquo;删除&rdquo;:<br /> &lt;IMG SRC=http://www.163design.net/a/o/&quot;<a href="http://202.100.116.12/paddy/bbsimages/fsosafe/005.gif">http://202.100.116.12/paddy/bbsimages/fsosafe/005.gif</a>&quot; border=0&gt;<br />    现在出现的是如下图所示,此时再点&ldquo;添加&rdquo;:<br /> &lt;IMG SRC=http://www.163design.net/a/o/&quot;<a href="http://202.100.116.12/paddy/bbsimages/fsosafe/006.gif">http://202.100.116.12/paddy/bbsimages/fsosafe/006.gif</a>&quot; border=0&gt;<br /> 在弹出的&ldquo;选择 组&rdquo;对话框中找到&ldquo;Guests&rdquo;,点&ldquo;添加&rdquo;,此组就会出现在下方的文本框中,然后点&ldquo;确定&rdquo;:<br /> &lt;IMG SRC=http://www.163design.net/a/o/&quot;<a href="http://202.100.116.12/paddy/bbsimages/fsosafe/007.gif">http://202.100.116.12/paddy/bbsimages/fsosafe/007.gif</a>&quot; border=0&gt;<br />    出现的就是如下图所示的内容,点&ldquo;确定&rdquo;关闭此对话框:<br /> &lt;IMG SRC=http://www.163design.net/a/o/&quot;<a href="http://202.100.116.12/paddy/bbsimages/fsosafe/008.gif">http://202.100.116.12/paddy/bbsimages/fsosafe/008.gif</a>&quot; border=0&gt;<br />    打开&ldquo;Internet 信息服务&rdquo;,开始对虚拟主机进行设置,本例中的以对&ldquo;第一虚拟主机&rdquo;设置为例进行说明,右击该主机名,在弹出的菜单中选择&ldquo;属性&rdquo;:<br /> &lt;IMG SRC=http://www.163design.net/a/o/&quot;<a href="http://202.100.116.12/paddy/bbsimages/fsosafe/009.gif">http://202.100.116.12/paddy/bbsimages/fsosafe/009.gif</a>&quot; border=0&gt;<br />    弹出一个&ldquo;第一虚拟主机 属性&rdquo;的对话框,从对话框中可以看到该虚拟主机用户的使用的是&ldquo;F:\VHOST1&rdquo;这个文件夹:<br /> &lt;IMG SRC=http://www.163design.net/a/o/&quot;<a href="http://202.100.116.12/paddy/bbsimages/fsosafe/010.gif">http://202.100.116.12/paddy/bbsimages/fsosafe/010.gif</a>&quot; border=0&gt;<br />    暂时先不管刚才的&ldquo;第一虚拟主机 属性&rdquo;对话框,切换到&ldquo;资源管理器&rdquo;,找到&ldquo;F:\VHOST1&rdquo;这个文件夹,右击,选&ldquo;属性&rdquo;&rarr;&ldquo;安全&rdquo;选项卡,此时可以看到该文件夹的默认安全设置是&ldquo;Everyone&rdquo;完全控制(视不同情况显示的内容不完全一样),首先将最将下的&ldquo;允许将来自父系的可继承权限传播给该对象&rdquo;前面的对号去掉:<br /> &lt;IMG SRC=http://www.163design.net/a/o/&quot;<a href="http://202.100.116.12/paddy/bbsimages/fsosafe/011.gif">http://202.100.116.12/paddy/bbsimages/fsosafe/011.gif</a>&quot; border=0&gt;<br /> 此时会弹出如下图所示的&ldquo;安全&rdquo;警告,点&ldquo;删除&rdquo;:<br /> &lt;IMG SRC=http://www.163design.net/a/o/&quot;<a href="http://202.100.116.12/paddy/bbsimages/fsosafe/012.gif">http://202.100.116.12/paddy/bbsimages/fsosafe/012.gif</a>&quot; border=0&gt;<br />    此时安全选项卡中的所有组和用户都将被清空(如果没有清空,请使用&ldquo;删除&rdquo;将其清空),然后点&ldquo;添加&rdquo;按钮。<br /> &lt;IMG SRC=http://www.163design.net/a/o/&quot;<a href="http://202.100.116.12/paddy/bbsimages/fsosafe/013.gif">http://202.100.116.12/paddy/bbsimages/fsosafe/013.gif</a>&quot; border=0&gt;<br />    将如图中所示的&ldquo;Administrator&rdquo;及在前面所创建的新帐号&ldquo;IUSR_VHOST1&rdquo;添加进来,将给予完全控制的权限,还可以根据实际需要添加其他组或用户,但一定不要将&ldquo;Guests&rdquo;组、&ldquo;IUSR_机器名&rdquo;这些匿名访问的帐号添加上去!<br /> &lt;IMG SRC=http://www.163design.net/a/o/&quot;<a href="http://202.100.116.12/paddy/bbsimages/fsosafe/014.gif">http://202.100.116.12/paddy/bbsimages/fsosafe/014.gif</a>&quot; border=0&gt;<br />    再切换到前面打开的&ldquo;第一虚拟主机 属性&rdquo;的对话框,打开&ldquo;目录安全性&rdquo;选项卡,点匿名访问和验证控制的&ldquo;编辑&rdquo;:<br /> &lt;IMG SRC=http://www.163design.net/a/o/&quot;<a href="http://202.100.116.12/paddy/bbsimages/fsosafe/015.gif">http://202.100.116.12/paddy/bbsimages/fsosafe/015.gif</a>&quot; border=0&gt;<br />    在弹出的&ldquo;验证方法&rdquo;对方框(如下图所示),点&ldquo;编辑&rdquo;:<br /> &lt;IMG SRC=http://www.163design.net/a/o/&quot;<a href="http://202.100.116.12/paddy/bbsimages/fsosafe/016.gif">http://202.100.116.12/paddy/bbsimages/fsosafe/016.gif</a>&quot; border=0&gt;<br />    弹出了&ldquo;匿名用户帐号&rdquo;,默认的就是&ldquo;IUSR_机器名&rdquo;,点&ldquo;浏览&rdquo;:<br /> &lt;IMG SRC=http://www.163design.net/a/o/&quot;<a href="http://202.100.116.12/paddy/bbsimages/fsosafe/017.gif">http://202.100.116.12/paddy/bbsimages/fsosafe/017.gif</a>&quot; border=0&gt;<br />    在&ldquo;选择 用户&rdquo;对话框中找到前面创建的新帐号&ldquo;IUSR_VHOST1&rdquo;,双击:<br /> &lt;IMG SRC=http://www.163design.net/a/o/&quot;<a href="http://202.100.116.12/paddy/bbsimages/fsosafe/018.gif">http://202.100.116.12/paddy/bbsimages/fsosafe/018.gif</a>&quot; border=0&gt;<br />    此时匿名用户名就改过来了,在密码框中输入前面创建时,为该帐号设置的密码:<br /> &lt;IMG SRC=http://www.163design.net/a/o/&quot;<a href="http://202.100.116.12/paddy/bbsimages/fsosafe/019.gif">http://202.100.116.12/paddy/bbsimages/fsosafe/019.gif</a>&quot; border=0&gt;<br />    再确定一遍密码:<br /> &lt;IMG SRC=http://www.163design.net/a/o/&quot;<a href="http://202.100.116.12/paddy/bbsimages/fsosafe/020.gif">http://202.100.116.12/paddy/bbsimages/fsosafe/020.gif</a>&quot; border=0&gt;<br />    OK,完成了,点确定关闭这些对话框。<br />    经此设置后,&ldquo;第一虚拟主机&rdquo;的用户,使用 ASP 的 FileSystemObject 组件也只能访问自己的目录:F:\VHOST1 下的内容,当试图访问其他内容时,会出现诸如&ldquo;没有权限&rdquo;、&ldquo;硬盘未准备好&rdquo;、&ldquo;500 服务器内部错误&rdquo;等出错提示了。<br />    另:如果该用户需要读取硬盘的分区容量及硬盘的序列号,那这样的设置将使其无法读取。如果要允许其读取这些和整个分区有关的内容,请右键点击该硬盘的分区(卷),选择&ldquo;属性&rdquo;&rarr;&ldquo;安全&rdquo;,将这个用户的帐号添加到列表中,并至少给予&ldquo;读取&rdquo;权限。由于该卷下的子目录都已经设置为&ldquo;禁止将来自父系的可继承权限传播给该对象&rdquo;,所以不会影响下面的子目录的权限设置。</p>
T:0.006855s,M:256.05 KB
返回顶部 留言