检测上传文件是否含有非法代码(图片)


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

文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags:
相关日志:
评论: 8 | 引用: 0 | 查看次数: 766
发表评论
昵 称:
密 码: 游客发言不需要密码.
内 容:
验证码: 验证码
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.
字数限制 20 字 | UBB代码 关闭 | [img]标签 关闭