MIME协议的内容分析及解析说明.docxVIP

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
MIME协议的内容分析及解析说明 作者:李鹏博 时间:2016/06 MIME协议说明 MIME, 全称为“Multipurpose Internet Mail Extensions”, 比较确切的中文名称为“多用途互联网邮件扩展”。它是当前一种电子邮件技术规范。 MIME不是一种传输协议,而是一种编写规范,常常建立在SMTP协议、HTTP协议等之上。 MIME协议的使用场景 MIME协议可以在SMTP基础上,使得邮件可以传输任意二进制文件,广泛用在邮件源码的编写规范上。 除此之外,MIME协议可以在HTTP协议基础上通过POST方法上传附件,有很多站点是使用该协议完成,如SOHU邮箱、263邮箱、QQ邮箱(部分)等。 MIME协议包头内容说明及解析 以下,将统一名词为:boundary(节)、Content-Type(内容类型)。 建立在SMTP协议上的邮件编码 关于SMTP协议的说明请参见《简析SMTP协议》 ,此处主要说明客户端向服务器请求发送DATA之后,整个DATA包体(或一封邮件本身的编码)。邮件源码查看方式如下,在邮件客户端右击选择“更多操作”-“查看邮件源码”即可。 以上,是一封简单邮件的包头信息,其中关键字说明如下: 关于出现汉字,上述示例邮件并未出现汉字,如果出现汉字,就会出现对其编码的现象,比如, 这种情况就需要将=?GB2312?B?与?=之间的内容拿出来进行BASE64解码。这种情况出现在主题、文件名等位置。 关于Content-Type,Content-Type也是个很重要的关键字,他是该包体内容类型的说明。可能出现的有很多,常用的有:multipart/related;multipart/mixed; multipart/alternative;等。其中,multipart/alternative出现说明邮件中无附件且只有文字信息;multipart/related出现则说明无附件有文字信息和图片信息;multipart/mixed出现这说明邮件存在附件。这个参数是对一封邮件解析的一个关键参数。 关于boundary,boundary是分割一封邮件不同部分的节,这也是解析MIME还原文件的根本所在。拿下面的boundary举例。 boundary=----=_001_NextPart735470588356_=---- 引号之间的是boundary关键字,该关键字一定会出现在邮件包体之中,该部分的解析在包体解析中说明。 建立在HTTP协议上的附件上传编码 HTTP上传附件有很多种方式,除了QQ、163的webmail会自行定义一些上传的协议之外,最常用和通用的是建立在HTTP上的MIME协议附件上传。 举例如下: HTTP协议所包含的HOST等关键信息有: HOST:邮件上传的主机地址 Content-length:包体的大小 Content-Type:内容类型,MIME协议的附件上传都是form-data,application/octet-stream类型的都是其他定义的上传协议,需要特殊分析,如QQ的/ftn_handler/等。 出了HTTP协议包含的这些关键字外,还有一些我们需要重点关注的。 关于boundary,首先我们从包头的Content-Type可以拿到boundary关键字,这是用来解析报文的关键信息。具体包体解析与SMTP协议类似,在下节包体解析中详细说明。 MIME协议包体说明及解析 该节不区分SMTP协议和HTTP协议,以SMTP协议的邮件源码为例,讲述MIME包体解析。HTTP协议的解析类似。 包体格式示意图 包体各节详细解析 以下所说的“第三节(文本节)”并不唯一,只是举例说明,是按照示例邮件进行区分讲述的。如果有多个附件,每个附件会占一个节。 Boundary目录 邮件源码包体一开始,是整个包体的boundary目录。格式如上所说。 上图中,先是第一节的关键字,及第二节的类型说明(可以看出第二节是图片);然后是第二节的关键字和第三节的类型(可以看出是文本)说明;接下来如果没有其他节,就是第三节的正式内容信息了。 第三节(文本节) 从上图可以看出,第三节是纯文本信息(Content-Type:text/plain),编码类型是base64,下面的文本拿出来进行base64解码即可拿到邮件的正文。如下。 上图是接下来的包体内容,除此之外还有一个第三节,这个第三节的类型是text/html,这部分内容是整个邮件的格式信息,不涉及内容信息。这部分决定了图片的出现的位置、字体的大小格式、缩进、颜色等等。一般做审计用不到该部分。 需要说明一点,该节结束的时候,有这样一个标志。 不止这里,所有的节的结束位置都会有这样一个标志,就是原来的boundary关键字加上“--”(原来有

文档评论(0)

kfcel5889 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档