最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

http圖片上傳安全性問題 根據(jù)ContentType (MIME) 判斷其實不準確、不安全

 更新時間:2015年09月24日 11:32:38   作者:小 鵬  
圖片上傳常用的類型判斷方法有這么幾種---截取擴展名、獲取文件ContentType (MIME) 、讀取byte來判斷(這個什么叫法來著?)。下面由腳本之家小編跟大家分享圖片上傳安全性問題,感興趣的朋友一起看看吧

圖片上傳常用的類型判斷方法有這么幾種---截取擴展名、獲取文件ContentType (MIME) 、讀取byte來判斷(這個什么叫法來著?)。前兩種都有安全問題。容易被上傳不安全的文件,如木馬什么的。第1種截取文件擴展名來判斷的方法很明顯不安 全,第2種ContentType MIME可以偽造,所以用ContentType來判斷其實也不安全。建議采用第3種。

C#演示:

1.截取擴展名來做判斷,不可取。

if (Request.Files.Count > 0)
{
  //這里只測試上傳第一張圖片file[0]
  HttpPostedFile file0 = Request.Files[0];
  string ext = file0.FileName.Substring(file0.FileName.LastIndexOf('.') + 1);//文件擴展名string[] fileTypeStr = { "jpg", "gif", "bmp", "png" };
  if (fileTypeStr.Contains(ext))
  {
    file0.SaveAs(Server.MapPath("~/" + file0.FileName));//保存文件  }
  else
  {
    Response.Write("圖片格式不正確" + ext);
  }
}

2.判斷ContentType (MIME) ,比第1種方案安全。但其實ContentType是可偽造的,所以也不夠安全。

if (Request.Files.Count > 0)
{
//這里只測試上傳第一張圖片file[0]
  HttpPostedFile file0 = Request.Files[0];
  string contentType = file0.ContentType;//文件類型string[] fileTypeStr = { "image/gif","image/x-png","image/pjpeg","image/jpeg","image/bmp"};
  if (fileTypeStr.Contains(contentType))
  {
    file0.SaveAs(Server.MapPath("~/" + file0.FileName));
  }
  else
  {
    Response.Write("圖片格式不正確" + contentType);
  }
}

3.通過byte獲取文件類型,來做判斷。

if (Request.Files.Count > 0)
{
//這里只測試上傳第一張圖片file[0]
  HttpPostedFile file0 = Request.Files[0];
  //轉(zhuǎn)換成byte,讀取圖片MIME類型  Stream stream;
  //int contentLength = file0.ContentLength; //文件長度byte[] fileByte = newbyte[2];//contentLength,這里我們只讀取文件長度的前兩位用于判斷就好了,這樣速度比較快,剩下的也用不到。
  stream = file0.InputStream;
  stream.Read(fileByte, 0, 2);//contentLength,還是取前兩位  stream.Close();
  string fileFlag = "";
  if (fileByte != null && fileByte.Length > 0)//圖片數(shù)據(jù)是否為空  {
    fileFlag = fileByte[0].ToString() + fileByte[1].ToString();         
  }
  string[] fileTypeStr = { "255216", "7173", "6677", "13780" };//對應(yīng)的圖片格式j(luò)pg,gif,bmp,pngif (fileTypeStr.Contains(fileFlag))
  {
    file0.SaveAs(Server.MapPath("~/" + file0.FileName));
  }
  else
  {
    Response.Write("圖片格式不正確:" + fileFlag);
  }
}

以上內(nèi)容就是本文給大家敘述的http圖片上傳安全性問題 根據(jù)ContentType (MIME) 判斷其實不準確、不安全,希望大家喜歡。

相關(guān)文章

最新評論

视频| 通渭县| 阜康市| 宜君县| 广灵县| 扬中市| 东明县| 福清市| 望都县| 德安县| 巨鹿县| 临沂市| 宕昌县| 出国| 盐山县| 房山区| 孝昌县| 原阳县| 营山县| 阿图什市| 抚顺市| 乡宁县| 阿拉善盟| 德清县| 兴化市| 平湖市| 贵州省| 临沧市| 水城县| 连平县| 抚松县| 叙永县| 齐河县| 阜新| 甘南县| 河源市| 玉门市| 常州市| 马尔康县| 宁河县| 永年县|