[网络应用] [推荐]三种禁用FileSystemObject(FSO)组件的方法

luck0122 发布于2006-8-27 05:37 1135 次浏览 3 位用户参与讨论   [复制分享主题]
众所周知,FileSystemObject组件的强大功能及破坏性是它屡屡被<a class="channel_keylink" href="http://www.3800hk.com/"><font color="#000000">免费</font></a>主页 <br/>提供商(那些支持ASP)的禁用的原因,我整理了一下,本来只找到两种方法,后来 <br/>被某人一刺激,硬是想到第三种不为人所知的方法,呵呵,也不知道是不是这样的。 <br/><br/>第一种:用RegSrv32 /u C:\WINDOWS\SYSTEM\scrrun.dll(win98路径)来注销该组 <br/>件。此方法过于狠毒,属于同归于尽的方法,大家都没得用,是下招 <br/><br/>第二种:修改Progid的值,在ASP里调用组件的方式通常是 Set 对象名=Server. <br/>CreateObject("Progid"),这时候我们就可以通过修改注册表中的Progid值从达 <br/>到禁用该组件的方法。在 开始-运行中敲入regedit,然后找到HKEY_CLASSES_ROO <br/>T\Scripting.FileSystemObject,这时候我们就可以更改该Progid的值了,如改 <br/>成Scripting.FileSystemObject8。这样在ASP页里就这样调用了:<br/><p class="code"><br/><table cellspacing="0" cellpadding="6" width="95%" align="center" border="0" style="BORDER-RIGHT: #cccccc 1px dotted; TABLE-LAYOUT: fixed; BORDER-TOP: #cccccc 1px dotted; BORDER-LEFT: #cccccc 1px dotted; BORDER-BOTTOM: #cccccc 1px dotted;"><tbody><tr><td bgcolor="#fdfddf" style="WORD-WRAP: break-word;"><font style="FONT-WEIGHT: bold; COLOR: #990000;">以下是代码片段:</font><br/>&lt;%@&nbsp;Language=Vbscript%&gt;&nbsp; <br/>&lt;%&nbsp; <br/>Set&nbsp;Fs=Server.CreateObject("Scripting.FileSystemObject8")&nbsp; <br/>%&gt;&nbsp;</td></tr></tbody></table></p>(如果你前面没有调用过该组件的话,则无须重启,就可以看到效果了,否则请重 <br/>启后看效果。) <br/>这时候我们看看还是用原来的调用方法的结果: <br/><p class="code"><table cellspacing="0" cellpadding="6" width="95%" align="center" border="0" style="BORDER-RIGHT: #cccccc 1px dotted; TABLE-LAYOUT: fixed; BORDER-TOP: #cccccc 1px dotted; BORDER-LEFT: #cccccc 1px dotted; BORDER-BOTTOM: #cccccc 1px dotted;"><tbody><tr><td bgcolor="#fdfddf" style="WORD-WRAP: break-word;"><font style="FONT-WEIGHT: bold; COLOR: #990000;">以下是代码片段:</font><br/>&lt;%@&nbsp;Language=Vbscript%&gt;&nbsp; <br/>&lt;%&nbsp; <br/>Set&nbsp;Fs=Server.CreateObject("Scripting.FileSystemObject")&nbsp; <br/>%&gt;&nbsp;</td></tr></tbody></table><br/></p>这时候的运行结果为: <br/><a class="channel_keylink" href="http://www.3800hk.com/"><font color="#000000">服务</font></a>器对象 错误 'ASP 0177 : 800401f3' <br/><br/>Server.CreateObject 失败 <br/><br/>/aspimage/testfile2.asp, 行3 <br/><br/>800401f3 <br/>(OK,达到我们的要求) <br/>该方法由于本人迟了两步,结果就让别人抢着回答了,这样极大的刺激了我,结 <br/>果就产生了第三种方法。 <br/><br/>第三种:细心的高手们会想,既然能通过修改Progid值来禁用该组件,那Clsid是 <br/>否也可以来修改呢?(OK,你想得和我一样)我们知道,除了CreateObject方法以 <br/>外,也可以使用一般的标注建立一个组件,我们可以在ASP里面使用HTM <br/>L的标注,以便在网页中加入一个组件。方法是: <br/><p class="code"><table cellspacing="0" cellpadding="6" width="95%" align="center" border="0" style="BORDER-RIGHT: #cccccc 1px dotted; TABLE-LAYOUT: fixed; BORDER-TOP: #cccccc 1px dotted; BORDER-LEFT: #cccccc 1px dotted; BORDER-BOTTOM: #cccccc 1px dotted;"><tbody><tr><td bgcolor="#fdfddf" style="WORD-WRAP: break-word;"><font style="FONT-WEIGHT: bold; COLOR: #990000;">以下是代码片段:</font><br/>&lt;object&nbsp;runat=server&nbsp;id=fs1&nbsp;scope=page&nbsp;progid="Scripting.FileSystemObj&nbsp; <br/>ect"&gt;&lt;/object&gt;&nbsp;</td></tr></tbody></table><br/></p>Runat表示是在<a class="channel_keylink" href="http://www.3800hk.com/"><font color="#000000">服务</font></a>端执行,Scope表示组件的生命周期,可以选用Session,Appl <br/>ication或page(表示当前页面,也可缺省) <br/>这种写法对我们没用,还有一种写法是: <br/><p class="code"><table cellspacing="0" cellpadding="6" width="95%" align="center" border="0" style="BORDER-RIGHT: #cccccc 1px dotted; TABLE-LAYOUT: fixed; BORDER-TOP: #cccccc 1px dotted; BORDER-LEFT: #cccccc 1px dotted; BORDER-BOTTOM: #cccccc 1px dotted;"><tbody><tr><td bgcolor="#fdfddf" style="WORD-WRAP: break-word;"><font style="FONT-WEIGHT: bold; COLOR: #990000;">以下是代码片段:</font><br/>&lt;object&nbsp;runat=server&nbsp;id=fs1&nbsp;scope=page&nbsp;classid="clsid:clsid的值"&gt;&lt;/obj&nbsp; <br/>ect&gt;&nbsp;</td></tr></tbody></table><br/></p>我们也可以通过修改该Clsid的值而禁用该组件,如将注册表中HKEY_CLASSES_RO <br/>OT\Scripting.FileSystemObject\CLSID的值0D43FE01-F093-11CF-8940-00A0C90 <br/>54228改成0D43FE01-F093-11CF-8940-00A0C9054229(改了最后面一位),这时候的 <br/>写法为: <br/><p class="code"><table cellspacing="0" cellpadding="6" width="95%" align="center" border="0" style="BORDER-RIGHT: #cccccc 1px dotted; TABLE-LAYOUT: fixed; BORDER-TOP: #cccccc 1px dotted; BORDER-LEFT: #cccccc 1px dotted; BORDER-BOTTOM: #cccccc 1px dotted;"><tbody><tr><td bgcolor="#fdfddf" style="WORD-WRAP: break-word;"><font style="FONT-WEIGHT: bold; COLOR: #990000;">以下是代码片段:</font><br/>&lt;object&nbsp;runat=server&nbsp;id=fs1&nbsp;scope=page&nbsp;classid="clsid:0D43FE01-F093-11&nbsp; <br/>CF-8940-00A0C9054229"&gt;&lt;/object&gt;&nbsp;</td></tr></tbody></table></p>看运行结果,没问题,OK。这时候我们再用 <br/><p class="code"><table cellspacing="0" cellpadding="6" width="95%" align="center" border="0" style="BORDER-RIGHT: #cccccc 1px dotted; TABLE-LAYOUT: fixed; BORDER-TOP: #cccccc 1px dotted; BORDER-LEFT: #cccccc 1px dotted; BORDER-BOTTOM: #cccccc 1px dotted;"><tbody><tr><td bgcolor="#fdfddf" style="WORD-WRAP: break-word;"><font style="FONT-WEIGHT: bold; COLOR: #990000;">以下是代码片段:</font><br/>&lt;object&nbsp;runat=server&nbsp;id=fs1&nbsp;scope=page&nbsp;classid="clsid:0D43FE01-F093-11&nbsp; <br/>CF-8940-00A0C9054228"&gt;&lt;/object&gt;&nbsp;</td></tr></tbody></table><br/></p>这时候就出错了。 <br/><br/>新建一用户:iusr_domain <br/>IIS里设置对应站点的匿名用户IUSR_DOMAIN <br/>CACLS: 设置目录权限 <br/><br/>这样FSO可用,但不会影响别人

已有(3)人评论

huangsten 发表于 2006-8-27 21:19:58 | 显示全部楼层
哦,厉害,支持。
Laputa81 发表于 2006-8-28 07:52:03 | 显示全部楼层
<p>孤陋寡闻的我入嚟学嗄嘢先!!!</p>
DARK0088 发表于 2006-8-28 14:45:24 | 显示全部楼层
见到D代码就觉得好恐怖吖!!~太犀利啦
您需要登录后才可以回帖 登录 | 註冊

本版积分规则

快速
回复
返回
列表
返回
顶部