Chinaunix首页 | 论坛 | 博客
  • 博客访问: 833243
  • 博文数量: 117
  • 博客积分: 2595
  • 博客等级: 少校
  • 技术积分: 1204
  • 用 户 组: 普通用户
  • 注册时间: 2009-09-18 18:16
文章分类

全部博文(117)

文章存档

2013年(1)

2012年(2)

2011年(18)

2010年(95)

2009年(1)

分类: 系统运维

2010-08-09 03:09:52

使用无惧上传类遇到一个非常邪门的问题!
就是在使用无惧上传类的(我的无惧上传类有点低,还是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..

阅读(2250) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~