国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

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

2024-07-10 13:30:04
字體:
來源:轉載
供稿:網友
本文介紹一種更安全的方式上傳圖片,他能有效的防止一些通過修改文件后綴或MIME來偽造的圖片的上傳,從而保證服務器的安全,希望對大家有所幫助。
 

ASP.NET中在判斷文件格式時,我們以前常用的方法就是通過截取擴展名來做判斷,或者通過ContentType (MIME) 判斷,這兩種方法都不太安全,因為這兩種方式用戶都可以偽造,從而達可以攻擊網站,實現給網站掛馬等目的。

下面介紹通過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 pdf


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 阜阳市| 普安县| 安泽县| 聂荣县| 贡山| 磴口县| 吴忠市| 海安县| 余庆县| 怀安县| 寻乌县| 乐业县| 石棉县| 中江县| 余干县| 乌鲁木齐市| 维西| 渝中区| 崇文区| 桦南县| 鞍山市| 寻甸| 邳州市| 江永县| 朝阳市| 德州市| 米易县| 绥德县| 灌云县| 海兴县| 汤原县| 大宁县| 通海县| 潮安县| 平阴县| 景洪市| 呼和浩特市| 永宁县| 锡林郭勒盟| 松滋市| 安达市|