ASP上传防止图片木马上传的方法
ASP #上传 #木马2012-05-12 10:57
主要是要检测上传的文件。不要相信一切网友上传的东西。
const adTypeBinary=1 '一个网 yige.org
dim jpg(1):jpg(0)=CByte(&HFF;):jpg(1)=CByte(&HD8;)
dim bmp(1):bmp(0)=CByte(&H42;):bmp(1)=CByte(&H4D;)
dim png(3):png(0)=CByte(&H89;):png(1)=CByte(&H50;):png(2)=CByte(&H4E;):png(3)=CByte(&H47;)
dim gif(5):gif(0)=CByte(&H47;):gif(1)=CByte(&H49;):gif(2)=CByte(&H46;):gif(3)=CByte(&H39;):gif(4)=CByte(&H38;):gif(5)=CByte(&H61;)
Response.Write CheckFileType(Server.MapPath("2.gif"))
function CheckFileType(filename)
on error resume next
CheckFileType=false
dim fstream,fileExt,stamp,i
fileExt=mid(filename,InStrRev(filename,".")+1)
set fstream=Server.createobject("ADODB.Stream")
fstream.Open
fstream.Type=adTypeBinary
fstream.LoadFromFile filename
fstream.position=0
select case fileExt
case "jpg","jpeg"
stamp=fstream.read(2)
for i=0 to 1
if ascB(MidB(stamp,i+1,1))=jpg(i) then CheckFileType=true else CheckFileType=false
next
case "gif"
stamp=fstream.read(6)
for i=0 to 5
if ascB(MidB(stamp,i+1,1))=gif(i) then CheckFileType=true else CheckFileType=false
next
case "png"
stamp=fstream.read(4)
for i=0 to 3
if ascB(MidB(stamp,i+1,1))=png(i) then CheckFileType=true else CheckFileType=false
next
case "bmp"
stamp=fstream.read(2)
for i=0 to 1
if ascB(MidB(stamp,i+1,1))=bmp(i) then CheckFileType=true else CheckFileType=false
next
end select
fstream.Close
set fseteam=nothing
if err.number<>0 then CheckFileType=false
end function相关文章
- asp数字或者字符排序的函数 2012/05/11
- ASP采集HTML内容常用代码 2012/05/11
- ASP防止刷新的功能实现方法 2012/05/11
- ASP把UTF8转换GB2312国标码的函数 2012/05/11
- asp小偷:获取微软安全更新列表 2012/05/11
- ASP去前后空格函数trim,ltrim,rtrim 2012/05/11
- ASP获取ACCESS数据库表名和结构的代码 2012/05/11
- asp过滤HTML标签的函数 2012/05/11
- ASP在线备份与恢复sqlserver数据库 2012/05/11
- ASP伪静态下实现utf-8文件缓存 2012/05/11