日期:2009-05-24  浏览次数:21039 次

关于无组件上传类被认为是病毒的公告

最近发现不少上传组件被认为是病毒而杀掉,具体表现为客户论坛名为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
%>