检测上传文件是否含有非法代码(图片)
作者:cmscn 日期:2007-02-07
1)打开upload.asp,
在最上面的dim里面添加定义is_upload
在最后一个%>前面添加如下代码:
'###########################
'# 2006.2.20 修改文件过滤 #
'###########################
sub tmp_upload(upname)
Dim objFSO,objTS,strText,strArray,ii
Set objFSO=Server.CreateObject("scripting.FileSystemObject")
Set objTS=objFSO.OpenTextFile(Server.MapPath(upname),1) '以文本文件方式读取文件
strText=lcase(objTS.ReadAll) '全文读取,并转换为小写
objTS.Close
strArray=split(dim_uptype,",")
for ii=0 to ubound(strArray)
if instr(strText,strArray(ii))<>0 then
is_upload=false
call upload_msg(9)
end if
next
if is_upload=false then
objFSO.DeleteFile Server.MapPath(upname),True '删除文件
end if
Set objFSO=nothing
end sub
其中dim_uptype为后台定义函数.
我在后台是用的dim_upload(30)
dim_upload=split(web_dim(14),"|")下面添加
dim_uptype=dim_upload(30)
在每个上传参数里面进行辨别:(一共3处)
call tmp_upload(upload_path&uppath&"/"&upfile_name)
if is_upload=false then
exit sub
end if
call upload_data()
call upload_msg(4)
在sub upload_msg(metp)里面添加:
case 9
uptemp=vbcrlf&"<font class=red>上传失败</font>:非法文件内容!"&err_goback
2)在后台定义过滤参数:
打开admin_config_edit.asp
在sub joekoe_chk_upload()里面
找到最后一个code_config(.....)改为
code_config(.....)&"|"&code_config(request.form("tdim_30"),4)
在:<tr>
<td>文件类型:</td>
<td><input type=text name=tdim_0 value='<% response.write tdim(0) %>' size=35 maxlength=50></td>
<td class=gray>多个类型用“,”分开</td>
</tr>
下面添加
<tr>
<td>文件内容过滤:</td>
<td><input type=text name=tdim_30 value='<% response.write tdim(30) %>' size=50></td>
<td class=gray>多个过滤关键词用“,”分开</td>
</tr>
如果出现下标越界,就直接打开common.asp
在web_dim(14)="||||||||||||||||||||||||||||||||||||||||||||||"里面添加"|"
不要""号!!!!
====================================================
文件过滤内容可以自己定义,下面是原来的定义:
cookie,.getfolder,.createfolder,.deletefolder,.createdirectory,.deletedirectory,.saveaswscript.shell,script.encode,folderfath,session
评论: 8 | 引用: 0 | 查看次数: 766
发表评论