问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

在用ASP语言建站中上传图片时,怎样检测是否为含有代码伪装的图片,如...

发布网友 发布时间:2024-10-03 19:50

我来回答

1个回答

热心网友 时间:2024-11-13 19:47

将下面代码保存为CheckFileType.asp
<%
'******************************************************************
'参数filename是本地文件的路径
'如果是文件jpeg,gif,bmp,png图片中的一种,函数返回true,否则返回false
'******************************************************************

const adTypeBinary=1

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)

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
%>

然后调用<!--#include file="CheckFileType.asp"-->
在获取上传文件的地方做个判断
If not CheckFileType(你的程序获取的文件地址) then
response.write "错误的图像格式"
Set fso = CreateObject("Scripting.FileSystemObject")
Set ficn = fso.GetFile(Server.mappath(filename))
ficn.delete
set ficn=nothing
set fso=nothing
response.end
end if
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
2024年9月走亲访友黄道吉日 2024年9月哪天适合走亲访友 2024年7月5日是走亲访友的黄道吉日吗 2024年7月5日适合走亲访友吗 交强险还需要交车船税吗 测评| 平安家易保(家财险):限商品房,自住版、房东版、租客版 女的23岁去读大学年龄是不是太大了? 请问中国石化怎么操作?23.00元买入的,能继续持有吗?中国石化的股改是怎... 600028我是21元买入的,现已经跌到15元多了,怎么办呀?赔死了!!_百度知 ... 请问600028中国石化现在还可以买吗? ...一个游戏机插在电视上耍的那种小游戏,超级玛丽,冒险岛等,你们还玩... 最难小游戏排行榜(十大最难玩的家庭小游戏) 如何给fckeditor asp 版 增加图片水印 用ASPJPG组件给上传图片同时加上透明的PNG图片水印?代码怎么改? 皇明太阳能热水器售后服务电话 羽生结弦冬奥会第几名? 手机屏幕锁密码忘记了,怎么解锁啊?不想刷机 花滑团体赛男单短节目,金博洋出现失误排名第6,你对谁的表现印象... word2003文档数字复制以后怎么粘贴不出来? ...之间脸上特别是额头上长了很多貌似痘痘的红点,怎么调理才会好啊... ...的红点!有的是痘痘!主要是头发越来越少!请问这是怎么回事? word2003无法使用复制粘贴 ...的小红点,挤一下有白色的东西出来,请问这是什么病哦? ...请问这是什么痘痘 要怎么处理 该注意些什么呢? ...很小很小的疙瘩有时候会痒应该怎么办啊是什么原因a q ...都没有,只是摸上去很粗糙,有时抓破它还会有像痘痘 脖子一片红疙瘩,,还非常痒,,额头下巴也有是怎么回事啊,,这两个 ...尤其是下巴额头长了很多小颗粒,微微泛红,很痒,是怎么回事,有什么解 ... ...起了好多小疙瘩,不疼不痒的,主要是在下巴额头上,这是什么原因... ...密密麻麻的,犹如许多小米粒,还有点痒,是怎么回事? ...有点痒,疙瘩消了后留下红色的小点,还有额头也一样,请问是什么啊?反 ... word软件中,电脑的复制粘贴功能不正常 ...小米手机2无线连接打印机? 1、MHL 2、Wi-Fi Di 小米电视 wlan display 播放不流畅 ViV0能连小米盒的WLAN Display吗 重装系统和用ghost还原系统效果一样吗? 系统还原和系统重装的区别是什么? ...个移动的wifi,问下是不是和连接路由器的wifi一样是无限量使用的? ...过年的时候会回来,想装个WLAN,能只用两个月之后关掉吗? ...免费一年的宽带12兆的,是不带看电视的吗,他装的盒也不带wifi的... 一台电脑使用了一段时间后,操作系统出现了故障,如何使用Ghost软件将已... 作为个体可以注册商标么 没有营业直照,个人可以注册商标吗 已婚女人脸上易有一标志 女性脸上长斑与妇科有关吗 为什么已婚女性脸上容易长斑 女,26周岁,已婚妈妈,常常熬夜,睡眠不足,多梦 面色暗黄,脸上长斑(黄褐... 女人上了年纪后,脸上频长斑?医生坦言:想祛斑,调理内脏是关键_百度知 ... 为什么脸上爱长斑 华为手机哪个尺寸好? 黄褐斑怎么去除?有什么好的办法?本人已婚生过孩,脸上长好很多片状的黄褐... excel数据单价上涨60怎么操作表格单价增加15怎么调