MIME类型-服务端验证上传文件的类型

转载 2011年01月10日 17:18:00

      MIME的作用 : 使客户端软件,区分不同种类的数据,例如web浏览器就是通过MIME类型来判断文件是GIF图片,还是可打印的PostScript文件。

      web服务器使用MIME来说明发送数据的种类, web客户端使用MIME来说明希望接收到的数据种类。

      Tomcat的安装目录/conf/web.xml 中就定义了大量MIME类型 ,你可也去看一下。

 

      最近在做用表单上传文件,想在服务端验证上传文件的类型,只允许上传GIF,JPG,ZIP, 我们有两种方法,

      第一:检查文件的扩展名, 第二:检查文件的MIME类型 。

     检查文件的扩展名的方法,很简单快捷, 但是  a.jsp 改名为 a.jpg能可以绕过检查上传了。

     检查文件的MIME类型的方法,在IE7与Firefox下有一点区别(见下表), 有不同浏览器上传表现不一致。Firefox下ZIP与EXE文件的MIME类型同为application/octet-stream。

 

     所以我决定 两种方法结合使用,先检查扩展名, 再检查MIME,不合格的文件不让上传。

 

表中例出的是在服务器端(tomcat5.5)接收不同浏览器上传的文件时,取得的MIME类型

 

  用IE7上传 用Firefox3.0上传
GIF

image/gif

image/gif

JPG

image/pjpeg

image/jpeg

ZIP application/x-compressed application/octet-stream
JSP

text/html

text/html

EXE application/octet-stream application/octet-stream

 

  用IE7上传 用Firefox3.0上传
GIF image/gif  image/gif 
JPG image/pjpeg  image/jpeg 
ZIP application/x-compressed application/octet-stream 
JSP text/html  text/html 
EXE application/octet-stream  application/octet-stream 

 

 

常见MIME类型例表:

 

序号

内容类型

文件扩展名

描述

1

application/msword

doc

Microsoft Word

2

application/octet-stream bin

dms lha lzh exe class

可执行程序

3

application/pdf

pdf

Adobe Acrobat

4

application/postscript

ai eps ps

PostScript

5

appication/powerpoint

ppt

Microsoft Powerpoint

6

appication/rtf

rtf

rtf 格式

7

appication/x-compress

z

unix 压缩文件

8

application/x-gzip

gz

gzip

9

application/x-gtar

gtar

tar 文档 (gnu 格式 )

10

application/x-shockwave-flash

swf

MacroMedia Flash

11

application/x-tar

tar

tar(4.3BSD)

12

application/zip

zip

winzip

13

audio/basic

au snd

sun/next 声音文件

14

audio/mpeg

mpeg mp2

Mpeg 声音文件

15

audio/x-aiff

mid midi rmf

Midi 格式

16

audio/x-pn-realaudio

ram ra

Real Audio 声音

17

audio/x-pn-realaudio-plugin

rpm

Real Audio 插件

18

audio/x-wav

wav

Microsoft Windows 声音

19

image/cgm

cgm

计算机图形元文件

20

image/gif

gif

COMPUSERVE GIF 图像

21

image/jpeg

jpeg jpg jpe

JPEG 图像

22

image/png

png

PNG 图像

 

用IE7上传 用Firefox3.0上传
GIF

image/gif

image/gif

JPG

image/pjpeg

image/jpeg

ZIP application/x-compressed application/octet-stream
JSP

text/html

text/html

EXE application/octet-stream application/octet-stream

序号 内容类型 文件扩展名 描述
1 application/msword  doc  Microsoft Word 
2 application/octet-stream bin  dms lha lzh exe class  可执行程序
3 application/pdf  pdf  Adobe Acrobat 
4 application/postscript  ai eps ps  PostScript 
5 appication/powerpoint  ppt  Microsoft Powerpoint 
6 appication/rtf  rtf  rtf 格式
7 appication/x-compress  z  unix 压缩文件
8 application/x-gzip  gz  gzip 
9 application/x-gtar  gtar  tar 文档 (gnu 格式 ) 
10 application/x-shockwave-flash  swf  MacroMedia Flash 
11 application/x-tar  tar  tar(4.3BSD) 
12 application/zip  zip  winzip 
13 audio/basic  au snd  sun/next 声音文件
14 audio/mpeg  mpeg mp2  Mpeg 声音文件
15 audio/x-aiff  mid midi rmf  Midi 格式
16 audio/x-pn-realaudio  ram ra  Real Audio 声音
17 audio/x-pn-realaudio-plugin  rpm  Real Audio 插件
18 audio/x-wav  wav  Microsoft Windows 声音
19 image/cgm  cgm  计算机图形元文件
20 image/gif  gif  COMPUSERVE GIF 图像
21 image/jpeg  jpeg jpg jpe  JPEG 图像
22 image/png  png  PNG 图像

i春秋:警惕您站上的MIME类型绕过漏洞

实验环境 实验环境 操作机:Windows XP 目标机:Windows 2003 目标网址:www.test.com实验工具:中国菜刀 burp 实验目的 MI...

判断文件上传类型

MIME的英文全称是"Multipurpose Internet Mail Extensions" 多功能Internet 邮件扩充服务,它是一种多用途网际邮件扩充协议,在1992年最早应用于电子邮件...

上传验证绕过

Bypass Upload Validation Framework V0.9 CasperKid[S.Y.C] 2011.7.29  目录 0x01  客户端验证绕过(javas...
  • xysoul
  • xysoul
  • 2015年04月27日 09:38
  • 6242

multipart/form-data与application/octet-stream的区别、application/x-www-form-urlencoded

multipart/form-data: 1、既可以提交普通键值对,也可以提交文件键值对,也就是说可以混合提交,而且提交文件可以提交多个。 2、HTTP规范中的Content-Type不包含此类型,只...

创建上传JPG图片格式的MIME类型

 为了上传JPG格式的图像, 查了几篇网文, 但都说的比较含糊, 其中一篇竟然还隐藏了TCODE, 真晕呢. 我这里贴出上传JPG之前很重要的一步,就是要让SAP支持JPG格式,默认只支持.GIF好像...

Jmeter关于上传图片接口

最近接到的一个新的项目,老规矩,开发组开发完接口需要进行接口的测试,其他的很简单,根据限制条件逻辑等设计数据,用浏览器或者工具进行验证就OK。   其中有一个接口涉及到图片的上传,以前没有用过,通过...
  • yeziyqf
  • yeziyqf
  • 2016年10月12日 16:47
  • 1322

根据文件MIME类型打开文件

import android.content.Context; import android.content.Intent; import android.net.Uri; import androi...

Android监听进入和退出第三方应用

Android监听进入和退出第三方应用
  • yunfei_
  • yunfei_
  • 2017年08月08日 14:13
  • 555

BaseAdapter的使用与优化

1.数据适配器: 2.BaseAdapter的基本方法: 3.ListView的显示和缓冲机制: 需要才显示,显示完就回收缓存ViewHolder优化BaseAdapter的思路: ...

MIME类型-服务端验证上传文件的类型的讨论

MIME的作用 : 使客户端软件,区分不同种类的数据,例如web浏览器就是通过MIME类型来判断文件是GIF图片,还是可打印的PostScript文件。       web服务器使用MIME来说明发...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:MIME类型-服务端验证上传文件的类型
举报原因:
原因补充:

(最多只允许输入30个字)