当前位置: 首页 > 编程笔记 >

ASP.NET通过byte正确安全的判断上传文件格式

郑松
2023-03-14
本文向大家介绍ASP.NET通过byte正确安全的判断上传文件格式,包括了ASP.NET通过byte正确安全的判断上传文件格式的使用技巧和注意事项,需要的朋友参考一下

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
 类似资料:
  • 本文向大家介绍php判断文件上传图片格式的实例详解,包括了php判断文件上传图片格式的实例详解的使用技巧和注意事项,需要的朋友参考一下 php判断文件上传图片格式的实例详解 判断文件图片类型, 如上如果用户修改文件后缀为png jpeg等无法满足,查了查资料解决方法是采用判断文件的二进制流信息,如果你刚好遇到这种问题不妨尝试一下: 如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,

  • 问题内容: 选择图像,doc或pdf后,我想将它们通过okhttp3。如何进行此操作? 并在okhttp 3中 显示的错误是 谢谢。 问题答案: 所以我自己回答这个问题。 因此,我首先将输出流打开到一个临时文件。 扩展名取决于mime类型。您可以通过以下方式找到mime类型 现在从文件读取并将其内容写入临时文件 现在写入文件 最后 成功之后的最后

  • 问题内容: 我使用2个文件index.js,upload.php尝试通过ajax上传文件(img),如果成功追加到div 。 但是它不起作用,有几个问题,下面我的代码有什么建议吗? 谢谢。 upload.php 1. 还需要添加吗? 2. 并检查$ _FILES的大小或tmp_name是否仍使用? index.js 3.这几行是对的吗? 4.我错过或错了什么吗? 问题答案: 在其构造函数中接受一个

  • 本文向大家介绍PHP文件上传判断file是否己选择上传文件的方法,包括了PHP文件上传判断file是否己选择上传文件的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了PHP文件上传判断file是否己选择上传文件的方法。分享给大家供大家参考。具体方法如下: 一个合格的程序员在实现数据入库中时我们都会有一些非常严密的过滤与数据规则,像我们文件上传时在前段要判断用户是否选择上传文件同时在后台

  • 本文向大家介绍PHP判断上传文件类型的解决办法,包括了PHP判断上传文件类型的解决办法的使用技巧和注意事项,需要的朋友参考一下 分享给大家php判断上传文件类型的方法,大家一起学习学习。 希望通过本文对大家学习php程序设计有所帮助。

  • 问题内容: 我想使用将文件(特别是图像)上传到REST Server 。我已经导入/添加了构建路径和。而且我在堆栈跟踪中收到以下错误。 这有效吗? HTTP POST代码 堆栈跟踪 问题答案: 您似乎缺少依赖项。 我有,,并用和在我的类路径罐子。 我也使用而不是使用header属性。 查看Internet媒体类型以了解更多详细信息