求教一个FSO程序与虚拟主机IIS安全性的问题

N1rvana 2003-09-13 10:13:04
为了方便管理自己机器IIS根目录下面的数十个文件夹,我做了一个很简陋的索引页面。全部代码如下:(不算长,而且多数是html的格式控制)

/////////////////index.asp////////////////////
<%@language=JavaScript%>
<%
//////IIS 根目录文件索引//////
if(Request("act")=="delfile")
{
var objFSO = Server.CreateObject("Scripting.FileSystemObject");
var filePath=Request("path")+"";
if(objFSO.FileExists(filePath))
{
objFSO.DeleteFile(filePath);
Response.write("文件 "+filePath+" 已经在服务器上删除...");
Response.end;
}
else
{
Response.Write("文件 "+filePath+" 在服务器上不存在...");
Response.end;
}
}

//---------目录及子目录名确定---------
var thePath="";
thePath+=Request("path");
thePath=(thePath=="undefined"?"":thePath);

//---------定义FSO对象并获取当前目录---------
var objFSO = Server.CreateObject("Scripting.FileSystemObject");
var rootFolder=objFSO.GetFolder(Server.MapPath(thePath+"\\")); //关键在这里

//---------取得当前目录下子目录信息,在后面输出列表----------
var d_Folders=rootFolder.SubFolders;
var a_Folders=new Enumerator(d_Folders);

//---------取得当前目录下文件信息,在后面输出列表----------
var d_Files=rootFolder.Files;
var a_Files=new Enumerator(d_Files);
%>
<style>
body {
font-family: "宋体"; font-size: 12px; line-height: 16px;
margin: 0px;
SCROLLBAR-FACE-COLOR: #0753C6;
SCROLLBAR-HIGHLIGHT-COLOR: #8CB9FB;
SCROLLBAR-SHADOW-COLOR: #000000;
SCROLLBAR-3DLIGHT-COLOR: #445555;
SCROLLBAR-ARROW-COLOR: #ffffff;
SCROLLBAR-TRACK-COLOR: #A4BDE3;
SCROLLBAR-DARKSHADOW-COLOR: #555555
}
A { font-size:12px;font-weight:normal;font-style:normal;color:#CCCCCC;text-decoration:none;}
A:Hover{ font-size:12px;font-weight:normal;font-style:normal;color:#FF0000;text-decoration:underline;}

table { font-family: "宋体"; font-size: 12px;word-break:break-all;line-height: 16px}
.shadowText {FILTER: DropShadow(Color=#cccccc, OffX=1, OffY=1, Positive=1)}
</style>
<body bgcolor="#6699CC" text="#000000">
<table width="60%" border="0" cellspacing="0" cellpadding="0" align="center">
<tr>
<td height="50" colspan="4">
<div align="center"><b>IIS Localhost 文件索引</b></div>
<hr size="1" noshade>
</td>
</tr>
<tr>
<td height="20" class="shadowText" colspan="2">·该目录下的文件夹列表</td>
<td width="30%"> </td>
<td> </td>
</tr>
<%
for (; !a_Folders.atEnd(); a_Folders.moveNext()){%>
<tr>
<td height="20" colspan="2"> <%=a_Folders.item().Name%></td>
<td width="30%">
<div align="center"><a href=?path=<%=thePath+"\\"+a_Folders.item().Name%>>查看索引</a></div>
</td>
<td>
<div align="center"><a href=<%=thePath+"\\"+a_Folders.item().Name%>>进入目录</a></div>
</td>
</tr>
<% }%>
<tr>
<td colspan="4">
<hr size="1" noshade width="96%">
</td>
</tr>
<tr>
<td height="20" class="shadowText" colspan="2">·该目录下的文件列表</td>
<td width="30%" class="shadowText">
<div align="center">最后更新时间</div>
</td>
<td class="shadowText">
<div align="center">文件大小(Bytes)</div>
</td>
</tr>
<%
for (; !a_Files.atEnd(); a_Files.moveNext()){%>
<tr>
<td width="40%" height="20"> <%=a_Files.item().Name%></td>
<td width="10%" height="20">
<div align="center">[<a href="?act=delfile&path=<%=a_Files.item().Path%>">删除</a>]</div>
</td>
<td width="30%">
<div align="center"><%=a_Files.item().DateLastModified%></div>
</td>
<td>
<div align="center"><%=a_Files.item().Size%></div>
</td>
</tr>
<% }
delete objFSO;
%>
<tr>
<td height="50" colspan="2"> </td>
</tr>
</table>

///////////////////文件结束////////////////////

当我将这个文件上传到自己的空间并运行之后,发现竟然可以看到我的空间那台服务器的所有用户的文档(也就是IIS根目录下面所有文档),并且我用自己和另一位同学的空间试过,都可以由FSO删除任何文件。这样就意味这只需要这样一个简单至极的程序就可以盗用、修改甚至删除他人的文件……
我孤陋寡闻,我不知道大家使用的空间和主机是否也这样不安全,也不知道这个问题是否一个严重的问题,更不知道如何在服务器应该如何设定才能解决这个问题。
请大家指教一个解决方案,我会和自己的空间服务商联系,请他改进。
如果有朋友感兴趣,也不妨试试自己的空间,如果也不安全就想想办法吧,也不要去破坏别人的东西,创建比破坏似乎更有趣一些。
我没有系统地学过asp,如果这个问题很幼稚,大家见笑了。
...全文
55 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
jackking 2003-10-11
  • 打赏
  • 举报
回复
稻香老农有一个教程,就是教怎么做一个支持FSO的安全的虚拟主机的

在GUEST组中创用户,然后设置文件夹安全(NTFS),去掉默认的everyone,加入管理组和你刚才建的用户

在IIS中设置该目录访问的用户
Tonglu 2003-09-13
  • 打赏
  • 举报
回复
好好设置一下服务器的权限如果有上传的地方一般用户最好只要有写入权限最好不要给修改和删除权限其它目录也一样如果不需要写入东西或上传东西就只给读取权限
如果觉得这样还不安全可以用拒绝权限更保险
如果整个系统权限设置好了通过web方法再好的黑客也攻不破
除非有windows漏洞!
N1rvana 2003-09-13
  • 打赏
  • 举报
回复
to:Brookes(边走边唱)

可以在“用户”里面找到iusr_XX的用户,但是在高级设置里也没有找到具体的权限设置,请问在哪里进行设置呢?
lang11zi 2003-09-13
  • 打赏
  • 举报
回复
不安全
Brookes 2003-09-13
  • 打赏
  • 举报
回复
能删除文件,是因为你的用户权限有问题
你的iusr_XX除了读取,运行外,不应该有多余的权限
N1rvana 2003-09-13
  • 打赏
  • 举报
回复
嗯,多谢
不过这样似乎会使得不知道情况的人的程序无法正确运行,而且即使知道正确写法,写出的程序是否也失去了通用性?
beststone 2003-09-13
  • 打赏
  • 举报
回复
http://www.aspsky.net/article/show.aspx?id=2736
beststone 2003-09-13
  • 打赏
  • 举报
回复
所以保护好自己的空间,不要轻易让他人上传文件到上面
以下方法可以解决你的问题
registry key
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Scripting.FileSystemObject

或者執行
regsvr32.exe /u sccrun.dll

当你要考虑清楚,其实很多人需要这个功能的,关闭了,大家都不能用了

28,390

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧