佳木斯湛栽影视文化发展公司

主頁 > 知識(shí)庫 > ASP.NET通過byte正確安全的判斷上傳文件格式

ASP.NET通過byte正確安全的判斷上傳文件格式

熱門標(biāo)簽:科大訊飛語音識(shí)別系統(tǒng) 集中運(yùn)營管理辦法 阿里云 硅谷的囚徒呼叫中心 地方門戶網(wǎng)站 服務(wù)器配置 百度競價(jià)排名 網(wǎng)站排名優(yōu)化

ASP.NET中在判斷文件格式時(shí),我們以前常用的方法就是通過截取擴(kuò)展名來做判斷,或者通過ContentType (MIME) 判斷,這兩種方法都不太安全,因?yàn)檫@兩種方式用戶都可以偽造,從而達(dá)可以攻擊網(wǎng)站,實(shí)現(xiàn)給網(wǎng)站掛馬等目的。

下面介紹通過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 = new byte[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,png
  if (fileTypeStr.Contains(fileFlag))
  {
    file0.SaveAs(Server.MapPath("~/" + file0.FileName));
  }
  else
  {
    Response.Write("圖片格式不正確:" + fileFlag);
  }
}

常見文件類型對應(yīng)的byte數(shù)據(jù)

199196 sqlite數(shù)據(jù)庫文件
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 pdf
您可能感興趣的文章:
  • asp.net FileUpload控件實(shí)現(xiàn)文件格式判斷與文件大小限制
  • 概述.net開發(fā)過程中Bin目錄下面幾種文件格式

標(biāo)簽:甘孜 威海 隨州 梧州 開封 西雙版納 廣西 烏蘭察布

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《ASP.NET通過byte正確安全的判斷上傳文件格式》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 上一篇:解決ASP.NET中/應(yīng)用程序中的服務(wù)器錯(cuò)誤的方法

    下一篇:ASP.NET 5已終結(jié),迎來ASP.NET Core 1.0和.NET Core 1.0

    收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    金坛市| 海淀区| 崇左市| 沽源县| 平乐县| 东兰县| 中山市| 当涂县| 喀什市| 枣阳市| 吉林省| 莎车县| 芜湖市| 永福县| 呼图壁县| 旌德县| 塔城市| 历史| 闻喜县| 遂平县| 南召县| 金乡县| 镇赉县| 平阳县| 缙云县| 宁安市| 乌拉特后旗| 夏津县| 盘锦市| 盈江县| 潞西市| 内黄县| 广灵县| 巧家县| 镇赉县| 沅陵县| 长顺县| 澜沧| 桃园市| 涞源县| 朔州市|