当前位置: 首页 > 图文教程 > 网络编程 > ASP > 检查上传图片是否合法的函数,木马改后缀名、图片加恶意代码均逃不过

ASP
使用ASP和Word进行服务器端拼写检查
文本中首字母全改为大写
检测整数和长整数的函数
谈谈如何在不支持数据库的asp主页上运用ado
在多行文本框中显示读取信息
生成一个不重复的随即数字
网上追捕(很多实用的port)
用javascript隐藏超级链接的真实地址
给浏览器的滚动条加上颜色
asp+中是如何连接数据库ado+的
几个对图形进行动态处理的dhtml代码
域名登记查询(whois)很复杂吗--方法一
域名登记查询(whois)很复杂吗--方法二
用ASP创建多栏选项列表
asp中的一个奇怪的函数
瞒天过海html文件技术一瞥
如何在服务器上保存一定时间的信息
用ASP发 WAP MAIL(=)
创建弹出式“每日提示”窗口
用两行代码在浏览器中实现文件上传

ASP 中的 检查上传图片是否合法的函数,木马改后缀名、图片加恶意代码均逃不过


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-12   浏览: 288 ::
收藏到网摘: n/a

很多ASP程序检查上传图片是否合法往往只去检查文件的后缀,这样有一个很大的安全隐患,就是如果把ASP文件的后缀名改成.jpg或者.gif上传,或者图片里加入恶意代码再上传,那也会被程序认为是图片文件而照传不误。假如不怀好意的人上传个木马文件进去,虽然是后缀为jpg也许无法直接运行,但确确实实给服务器带来了很大的安全隐患。 今天试了下AspJpeg组件,发现用AspJpeg组件去处理不正常的图片文件的时候就会出错,呵呵,这个正好可以让我们用来检查图片的合法性,偶给封装成函数了~
复制代码 代码如下:

'-------------------------------------------
'函数名:chkimg
'作 用:检查图片文件是否合法
'参 数:img,图片路径
'返回值:布尔类型
'条 件:服务器必须支持AspJpeg
'-------------------------------------------
Function chkimg(img)
on error resume Next
chkimg=True
if isnull(img) then chkimg=false:exit function
Set chkJpeg = Server.CreateObject("/upload/tech/20091012/20091012012525_34173cb38f07f89ddbebc2ac9128303f.jpeg")
chkPath = Server.mappath(img)
chkJpeg.Open chkPath
If Err Then
chkimg=False
End If
If err.number<>0 Then err.clear
Set chkjpeg=Nothing
End Function

因为AspJpeg只能处理已经在服务器上的文件,所以实际运用的过程中我们可以这样做:先将图片上传到一个临时文件夹,然后检查图片的合法性,如果合法,复制图片到图片保存目录,删除临时文件并返回上传成功信息,如果非法,直接删除临时文件并返回错误警告。