程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> http圖片上傳平安性成績 依據ContentType (MIME) 斷定其實禁絕確、不平安

http圖片上傳平安性成績 依據ContentType (MIME) 斷定其實禁絕確、不平安

編輯:C#入門知識

http圖片上傳平安性成績 依據ContentType (MIME) 斷定其實禁絕確、不平安。本站提示廣大學習愛好者:(http圖片上傳平安性成績 依據ContentType (MIME) 斷定其實禁絕確、不平安)文章只能為提供參考,不一定能成為您想要的結果。以下是http圖片上傳平安性成績 依據ContentType (MIME) 斷定其實禁絕確、不平安正文


圖片上傳經常使用的類型斷定辦法有這麼幾種---截取擴大名、獲得文件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];
  //轉換成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)//圖片數據能否為空  {
    fileFlag = fileByte[0].ToString() + fileByte[1].ToString();         
  }
  string[] fileTypeStr = { "255216", "7173", "6677", "13780" };//對應的圖片格局jpg,gif,bmp,pngif (fileTypeStr.Contains(fileFlag))
  {
    file0.SaveAs(Server.MapPath("~/" + file0.FileName));
  }
  else
  {
    Response.Write("圖片格局不准確:" + fileFlag);
  }
}

以上內容就是本文給年夜家論述的http圖片上傳平安性成績 依據ContentType (MIME) 斷定其實禁絕確、不平安,願望年夜家愛好。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved