使用无惧上传类遇到一个非常邪门的问题!
就是在使用无惧上传类的(我的无惧上传类有点低,还是1.0的,有时间了升级2.2的,最下面有下载链接)
一个调用页面,如果使用了request方法,再使用UpFile Class的GetDate方法就会出现错误.
两者不能同时存在.
代码示例如下:
if trim(request("uploadit")) = "" then response.write "请勿邪恶,必须使用本网站的上传才可以"&trim(request("uploadtrue")) response.end end if
dim Farr
Set Upload = New UpFile_Class Upload.InceptFileType = "gif,jpg,bmp,jpeg,rar,png"
Upload.MaxSize = 1024000
Upload.GetDate()
...
|
上传的时候,要检测文件名不能有以下字符,会被恶意制造一个上传漏洞的.
FileName = Replace(FileName,":","1_") FileName = Replace(FileName,"<","2_") FileName = Replace(FileName,">","3_") FileName = Replace(FileName,"?","4_") FileName = Replace(FileName,"*","5_") FileName = Replace(FileName,"""","6_") FileName = Replace(FileName,"|","7_") FileName = Replace(FileName,";","8_") FileName = Replace(FileName,"..","9_")
|
补充:
由于上面没有判断ascii转义字符,比如a.asp%3baa.gif ,保存文件的时候,%3B会自动decode变成;
由于iis6.0(或者全部iis)有个bug,会把a.asp;aa.gif解析成a.asp,这样访问a.asp;aa.gif就会直接进入解析asp后的页面;
所以,有必要将ascii转义字符进行decode或者对其中的字符进行radom,随机变换城一些字母.
不过我还是偏向于 先decode在replace..
阅读(2330) | 评论(0) | 转发(0) |