ASP 执行时,是以“IUSR_机器名”的身份访问硬盘的,这里没给该用户帐号权限,ASP 也就不能读写硬盘上的文件了。
解决方法:在服务器上打开资源管理器,用鼠标右键点击a<-- 正文页网画中画广告 -->
|
这样做有一定的安全隐患,因为通过fso可以获得读写文件的权限,容易被黑客利用,下面是一种方法。
我们知道,除了CreateObject方法以外,也可以使用一般的标注建立一个组件,我们可以在ASP里面使用HTML
Runat表示是在服务端执行,Scope表示组件的生命周期,可以选用Session,Application或page(表示当前页面,也可缺省)
我们也可以通过修改该Clsid的值而禁用该组件,如将注册表中HKEY_CLASSES_ROOT/ Scripting.FileSystemObject/CLSID的值0D43FE01-F093-11CF-8940-00A0C9054228改成 0D43FE01-F093-11CF-8940-00A0C9054229(改了最后面一位),这时候的写法为:
CF-8940-00A0C9054229">
看运行结果,没问题,OK。这时候我们再用CF-8940-00A0C9054228">这时候就出错了。
新建一用户:iusr_domain
IIS里设置对应站点的匿名用户IUSR_DOMAIN
CACLS: 设置目录权限
这样FSO可用,但不会影响别人
预防的办法:
限制用户使用FileSystemObject对象。一种极端的做法是完全反注册掉提供FileSystemObject对象的那个组件,也就是Scrrun.dll。具体的方法如下:
在MS-DOS状态下面键入:
Regsvr32 /u c:/windows/system/scrrun.dll
(注意:在实际操作的时候要更改成为你本地的实际路径)