asp.net 文件上传验证是否是真正的图片格式

来源:互联网 发布:淘宝海蝶hifi音乐会馆 编辑:程序博客网 时间:2024/06/06 01:04

很多的验证只是单纯的验证文件的扩展名,但是文件的扩展名可以被修改的,一旦修改了,还是可以上传到服务器的。。。


public bool IsAllowedExtension(HttpPostedFile fu)        {            int fileLen = fu.ContentLength;            byte[] imgArray = new byte[fileLen];            fu.InputStream.Read(imgArray, 0, fileLen);            MemoryStream ms = new MemoryStream(imgArray);            System.IO.BinaryReader br = new System.IO.BinaryReader(ms);            string fileclass = "";            byte buffer;            try            {                buffer = br.ReadByte();                fileclass = buffer.ToString();                buffer = br.ReadByte();                fileclass += buffer.ToString();            }            catch            {            }            finally            {                br.Close();                ms.Close();            }            //注意将文件流指针还原            fu.InputStream.Position = 0;            //255216是jpg;7173是gif;6677是BMP,13780是PNG;7790是exe,8297是rar             if (fileclass == "255216" || fileclass == "7173" || fileclass == "13780" || fileclass == "6677")            {                return true;            }            return false;        }


这样就可以了。验证了文件的头信息,当然木马的制作也可以把头信息加入依然上传成功,此时应该需要我们的服务器必须控制上传文件的权限了。





0 0
原创粉丝点击