FSO是指文件系统对象,英文单词为File System Object
。 FSO是ASP程序中的一个对文件操作的控件
,通过
编程,可以通过该控件对
服务器进行读取、新建、修改、删除目录以及文件的操作
。它是ASP
编程中非常有用的一个控件,但大家可以想一下,在一台
服务器上有许多虚拟用户,如果一个用户使用FSO删除别人的文件,那不是乱了套,所以基于
安全考虑,不少的虚拟主机服务商干脆关掉了这个控件
,但关掉此控件,有的有户想使用ASP生成文件又变成了不可能的事,所以如果关闭了FSO会让客户很不方便。所以你在购买虚拟主机时,一定要看看你的服务器有没有关闭FSO权限,用了FSO,我们就可以操纵的计算机文件系统,在这里是指位于web服务器之上。所以,确认你对此拥有合适的权限。理想情况下,你可以在自己的机器上建立一个web服务器,这样就能方便地进行测试。如果运行于Windows平台,如果你还不是很了解FSO,请试一试微软公司的免费个人Web服务器PWS,或windows2000的IISFSO 模型对象Drive Object:驱动器对象 供存取磁盘或者网络驱动器FileSystemObject Object:文件系统对象 供存取计算机的文件系统Folder Object:文件夹对象 供存取文件夹的所有属性TextStream Object:文本流对象 供存取文件内容 你可以使用上面的对象做计算机上的任何事情,也包括破坏活动 ;-( 所以,请小心使用FSO。在web环境中,存储信息是非常重要的,比如用户信息,日志文件,等等。FSO提供了一个强大且简单的方法高效率地保存数据。在这篇文章里面,着重讨论FileSystemObject和TextStream对象。
ASP提供了强大的文件系统访问能力,可以对服务器硬盘上的任何文件进行读、写、复制、删除、改名等操作,这给学校网站的
安全带来巨大的威胁。现在很多校园主机都遭受过FSO
木马的侵扰。但是禁用FSO组件后,引起的后果就是所有利用这个组件的ASP程序将无法运行,无法满足客户的需求。如何既允许 FileSystemObject组件,又不影响服务器的安全性呢(即:不同虚拟主机用户之间不能使用该组件读写别人的文件)?以下是笔者多年来摸索出来的经验:
第一步是有别于Windows 2000设置的关键:右击C盘,点击“共享与安全”,在出现在对话框中选择“安全”选项卡,将Everyone、Users组删除,删除后如果你的网站连 ASP程序都不能运行,请添加IIS_WPG组(图1),并重启计算机。
经过这样设计后,FSO
木马就已经不能运行了。如果你要进行更安全级别的设置,请分别对各个磁盘分区进行如上设置,并为各个站点设置不同匿名访问用户。下面以实例来介绍(假设你的主机上E盘Abc文件夹下设Abc.com站点):
1. 打开“计算机管理→本地用户和组→用户”,创建Abc用户,并设置密码,并将“用户下次登录时须更改密码”前的对号去掉,选中“用户不能更改密码”和“密码永不过期”,并把用户设置为隶属于Guests组。
2. 右击E:Abc,选择“属性→安全”选项卡,此时可以看到该文件夹的默认安全设置是“Everyone”完全控制(视不同情况显示的内容不完全一样),删除Everyone的完全控制(如果不能删除,请点鱗高级]按钮,将“允许父项的继承权限传播”前面的对号去掉,并删除所有),添加 Administrators及Abc用户对本网站目录的所有安全权限。
3. 打开IIS管理器,右击Abc.com主机名,在弹出的菜单中选择“属性→目录安全性”选项卡,点击身份验证和访问控制的[编辑],弹出图2所示对话框,匿名访问用户默认的就是“IUSR_机器名”,点击[浏览],在“选择用户”对话框中找到前面创建的Abc账户,确定后重复输入密码。
经过这样设置,访问网站的用户就以Abc账户匿名身份访问E:Abc文件夹的站点,因为Abc账户只对此文件夹有安全权限,所以他只能在本文件夹下使用FSO。