ASP 上传过滤不全?

来源:百度知道 编辑:UC知道 时间:2024/05/30 08:16:01
if file.FileSize>0 then ''如果 FileSize > 0 说明有文件数据
'file.SaveAs Server.mappath(filename) ''保存文件
file.SaveToFile Server.mappath(FileName)
'response.write file.FileName&" 上传成功! <br>"
'response.write "新文件名:"&FileName&"<br>"
'response.write "新文件名已复制到所需的位置,可关闭窗口!"

''===============判断上传文件是否含非法字符串start================
set MyFile = server.CreateObject("Scripting.FileSystemObject")
set MyText = MyFile.OpenTextFile(Server.mappath(FileName), 1) '读取文本文件
sTextAll = lcase(MyText.ReadAll)
MyText.close
set MyFile = nothing
sStr="<%|.getfolder|.createfolder|.deletefolder|.createdirectory|.deletedirectory|.saveas|wscript.shell|script.encode|server.|.createobject|execute|activexobject|language="
sNoString = split(sStr,"|")
for i=0 to ubound(sNoString)

不用过滤可以吗,在这个页面加一个登录时的session验证
你后台登录的时候不是记录了吗,用那个啊,看看是不是登录了,要是登录了就可以打开这个文件,
if session("adminname")= "" then
response.write("不能访问")
end if
这样就可以判断他是不是从后台登录页面登录的啊,要的话就可以访问,不是就不能访问啊,我就是这样弄的,要是直接打开这个上传页面就不输出不能访问这几个字啊 ,当然要是你后台的账号密码都被他们知道了,那就另说了 ,可以用了是不是要加分啊

过滤越多,有时候正常的也过滤出问题了,我记得曾做过一个过滤的,所有post的数据都过滤。注册客户的时候,有网址。含有 and ,是人家的网址里边包含了这些字母,都被弄死了。。。呵呵~~