ASP.NET通过byte正确安全的判断上传文件格式
                            来源:爱站网时间:2020-05-30编辑:网友分享
                        
                        
                        ASP.NET通过byte正确安全的判断上传文件格式,这个操作通常通过截取扩展名或内容类判断,很多人会通过这些方式进攻网站,今天,就让爱站技术频道和我们一起来谈一谈吧!
                        ASP.NET通过byte正确安全的判断上传文件格式,这个操作通常通过截取扩展名或内容类判断,很多人会通过这些方式进攻网站,今天,就让爱站技术频道和我们一起来谈一谈吧!
下面介绍通过byte获取文件类型,来做判断的方式
if (Request.Files.Count > 0)
{
  //这里只测试上传第一张图片file[0]
  HttpPostedFile file0 = Request.Files[0];
    
  //转换成byte,读取图片MIME类型
  Stream stream;
  //int contentLength = file0.ContentLength; //文件长度
  byte[] fileByte = new byte[2];//contentLength,这里我们只读取文件长度的前两位用于判断就好了,这样速度比较快,剩下的也用不到。
  stream = file0.InputStream;
  stream.Read(fileByte, 0, 2);//contentLength,还是取前两位
  stream.Close();
    
  string fileFlag = "";
  if (fileByte != null && fileByte.Length > 0)//图片数据是否为空
  {
    fileFlag = fileByte[0].ToString() + fileByte[1].ToString();         
  }
  string[] fileTypeStr = { "255216", "7173", "6677", "13780" };//对应的图片格式jpg,gif,bmp,png
  if (fileTypeStr.Contains(fileFlag))
  {
    file0.SaveAs(Server.MapPath("~/" + file0.FileName));
  }
  else
  {
    Response.Write("图片格式不正确:" + fileFlag);
  }
}
常见文件类型对应的byte数据
| 199196 | sqlite数据库文件 | 
| 7076 | flv视频文件 | 
| 6787 | swf视频文件 | 
| 7173 | gif | 
| 255216 | jpg | 
| 13780 | png | 
| 6677 | bmp | 
| 239187 | txt,aspx,asp,sql | 
| 208207 | xls.doc.ppt | 
| 6063 | xml | 
| 6033 | htm,html | 
| 4742 | js | 
| 8075 | xlsx,zip,pptx,mmap,zip,docx | 
| 8297 | rar | 
| 01 | accdb,mdb | 
| 7790 | exe,dll | 
| 5666 | psd | 
| 255254 | rdp | 
| 10056 | bt种子 | 
| 64101 | bat | 
| 255254 | csv | 
| 3780 | 
好了,说了这么多,相信大家对爱站技术频道介绍的ASP.NET通过byte正确安全的判断上传文件格式已经有了一定的了解,那么,赶快操作属于自己的项目吧!
上一篇:ASP.NET中如何实现回调
 
                    