欧美大屁股bbbbxxxx,狼人大香伊蕉国产www亚洲,男ji大巴进入女人的视频小说,男人把ji大巴放进女人免费视频,免费情侣作爱视频

歡迎來到入門教程網(wǎng)!

C#教程

當(dāng)前位置:主頁 > 軟件編程 > C#教程 >

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

來源:本站原創(chuàng)|時間:2020-01-10|欄目:C#教程|點擊: 次

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

C#演示:

1.截取擴(kuò)展名來做判斷,不可取。

if (Request.Files.Count > 0)
{
  //這里只測試上傳第一張圖片file[0]
  HttpPostedFile file0 = Request.Files[0];
  string ext = file0.FileName.Substring(file0.FileName.LastIndexOf('.') + 1);//文件擴(kuò)展名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) 判斷其實不準(zhǔn)確、不安全,希望大家喜歡。

上一篇:C#獲取網(wǎng)頁源代碼的方法

欄    目:C#教程

下一篇:C#中DataGridView動態(tài)添加行及添加列的方法

本文標(biāo)題:http圖片上傳安全性問題 根據(jù)ContentType (MIME) 判斷其實不準(zhǔn)確、不安全

本文地址:http://mengdiqiu.com.cn/a1/C_jiaocheng/6963.html

網(wǎng)頁制作CMS教程網(wǎng)絡(luò)編程軟件編程腳本語言數(shù)據(jù)庫服務(wù)器

如果侵犯了您的權(quán)利,請與我們聯(lián)系,我們將在24小時內(nèi)進(jìn)行處理、任何非本站因素導(dǎo)致的法律后果,本站均不負(fù)任何責(zé)任。

聯(lián)系QQ:835971066 | 郵箱:835971066#qq.com(#換成@)

Copyright © 2002-2020 腳本教程網(wǎng) 版權(quán)所有