关于无组件上传类被认为是病毒的公告
最近发现不少上传组件被认为是病毒而杀掉,具体表现为客户论坛名为upload.inc,upload_fun.asp的文件被认为是病毒文件而杀掉,具体原因是因为国内很多论坛程序使用了名为“无惧上传类”的一段通过ado.stream组件上传的代码。这段代码被不少安全机构认为是对于web服务器有恶意威胁,自从五月起将其归类为backdoor.sinups恶意程序而查杀。具体安全公告请参阅http://www.sarc.com/avcenter/venc/data/backdoor.sinups.html
所谓“无组件上传”,是指通过windows服务器内建ado.stream对象实现的一种文件上传方式,一般用于客户的图片,文件等web上传程序,相对于其他上传方式来说,无组件上传没有特殊的组件要求,但是其上传功能是继承自asp内部对象,上传功能不是非常稳定,对于asp脚本执行时间有较高要求,并对于上传大小有一定限制。因此,推荐客户使用我们提供的aspupload上传组件。使用aspupload可以使您站点的上传功能更为稳定,健壮。对于aspupload,目前使用中的绝大多数程序都可以支持,只需要将您的站点程序设置为使用aspupload上传功能即可。并请客户不要使用“无惧上传类”这段代码,以避免不必要的麻烦。
请慎重处理好您站点程序的上传功能,以避免站点可能出现的安全隐患。
下面送上aspupload上传的实现代码(测试通过):
fileconfig.asp
<%
dim uploadfilepath,uploadlimitsize,uploadfileallowext,browerfilepath
uploadfilepath = "/upfile/"&year(now)&"_"&month(now)&"_"&day(now)&"/"
文件上传路径
browerfilepath = "/upfile/"
uploadlimitsize = 1024*50 50m
最大上传文件大小,单位为k
uploadfileallowext = ".txt|.asp|.rar"
可以上传的文件类型
function canupload(fileurl)
fileurl = lcase("|"& mid(fileurl, instrrev(fileurl, ".") + 1)& "|")
uploadfileallowextstr = "|"&uploadfileallowext&"|"
if instr(uploadfileallowextstr,fileurl)>0 then
canupload = false
else
canupload = true
end if
end function
function createfolder(filepath)
dim fso, f
on error resume next
set fso = createobject("scripting.filesystemobject")
if not fso.folderexists(filepath) then
set f = fso.createfolder(filepath)
set f = nothing
end if
set fso = nothing
end function
%>