ASP.NET通过byte正确安全的判断上传文件格式
来源:爱站网时间:2020-05-30编辑:网友分享
ASP.NET通过byte正确安全的判断上传文件格式,这个操作通常通过截取扩展名或内容类判断,很多人会通过这些方式进攻网站,今天,就让爱站技术频道和我们一起来谈一谈吧!
ASP.NET通过byte正确安全的判断上传文件格式,这个操作通常通过截取扩展名或内容类判断,很多人会通过这些方式进攻网站,今天,就让爱站技术频道和我们一起来谈一谈吧!
下面介绍通过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 |
好了,说了这么多,相信大家对爱站技术频道介绍的ASP.NET通过byte正确安全的判断上传文件格式已经有了一定的了解,那么,赶快操作属于自己的项目吧!
上一篇:ASP.NET中如何实现回调
