检测上传文件是否含有非法代码(图片)--针对1.2的修改
作者:cmscn 日期:2006-09-13
1.在后台定义过滤参数:
打开admin_config_edit.asp
在sub joekoe_chk_upload()里面
找到最后一个code_config(.....)改为
code_config(.....)&"|"&code_config(request.form("tdim_7"),4)
注:红色数字是你目前的最大值,1.2默认为7,如有修改,后面也要同步修改
在:
<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_7 value='<% response.write tdim(7) %>' 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
2.打开upload.asp
在最上面的dim里面添加定义is_upload,dim_uptype
在最后一个%>前面添加如下代码:
'===============上传附件非法代码过滤 by 碧波海天====================
sub tmp_upload(upname)
On Error Resume Next
Dim objFSO,objTS,strText,strArray,ii
Set objFSO=Server.createObject("scripting.FileSystemObject")
Set objTS=objFSO.OpenTextFile(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
objFSO.deleteFile Server.MapPath(upname),True '删除文件
call upload_msg(7)
else
is_upload=true
end if
next
Set objFSO=nothing
end sub
'===============上传附件非法代码过滤 by 碧波海天====================
注意绿色数字,要与后面一致
在dim_upload=split(web_dim(14),"|")下面添加
dim_uptype=dim_upload(7)
注:此处与上面红色数字要一致
在每个上传参数里面进行辨别:(一共3处)
call upload_data()
call upload_msg(4)
上面添加
call tmp_upload(up_path&upfile_name) '注意此处,与原帖不同
if is_upload=false then
exit sub
end if
在sub upload_msg(metp)里面添加:
case 7
uptemp=vbcrlf&"<font class=red>上传失败</font>:非法文件内容!"&go_back '此处与原帖不同
注:此处数字要与上面绿色数字一致
评论: 7 | 引用: 0 | 查看次数: 868
发表评论