[发明专利]一种在WEB系统文件上传过程中的文件类型自动校验方法在审
申请号: | 202110997267.2 | 申请日: | 2021-08-27 |
公开(公告)号: | CN113641999A | 公开(公告)日: | 2021-11-12 |
发明(设计)人: | 谷波;张捷;宋卫平;胡州明;杨帆;高攀 | 申请(专利权)人: | 四川中电启明星信息技术有限公司 |
主分类号: | G06F21/56 | 分类号: | G06F21/56;G06F21/60;G06F21/64;G06F16/174 |
代理公司: | 成都君合集专利代理事务所(普通合伙) 51228 | 代理人: | 尹新路 |
地址: | 610000 四川省成都市郫*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 web 系统 文件 上传 过程 中的 文件类型 自动 校验 方法 | ||
本发明提出了一种在WEB系统文件上传过程中的文件类型自动校验方法;在传统的文件后缀、ContentType头信息基础上,将文件校验过程分为四个步骤:ContentType检查、文件后缀检查、文件内容检查、文件病毒查杀,其中ContentType检查、文件后缀检查为传统检查方式;而文件内容检查则针对常见上传文件类型进行针对性的内容解析式判定;最后增加文件病毒查杀步骤,进一步增强了校验文件的安全性。
技术领域
本发明属于计算机数据文件处理技术领域,具体地说,涉及一种在WEB系统文件上传过程中的文件类型自动校验方法。
背景技术
Header:目前网页传输的通用协议是HTTP协议,即超文本传输协议。HTTP协议采用了请求/响应模型,浏览器或其他客户端发出请求,服务器给与响应。就整个网络资源传输而言,包括消息头(header)和消息正文(body)两部分。消息头(header)即Http Header消息,其由4部分组成,包括主标题(General-Header)、请求标题(Request-Header)、回应标题(Response-Header)及实体标题(Entity-Header),都遵照RFC822给出的通用格式定义。每个标题域由后紧跟冒号的名字,单空格(SP),字符及域值组成。
Content-Type:即是Internet Media Type,互联网媒体类型,也叫做MIME类型。在互联网中有成百上千中不同的数据类型,HTTP在传输数据对象时会为他们打上称为MIME的数据格式标签,用于区分数据类型。最初MIME是用于电子邮件系统的,后来HTTP也采用了这一方案。在HTTP协议消息头中,使用Content-Type来表示请求和响应中的媒体类型信息。它用来告诉服务端如何处理请求的数据,以及告诉客户端(一般是浏览器)如何解析响应的数据,比如显示图片,解析并展示html等等。
文件魔数:绝大多数文件的起始的几个字节内容都是固定的,跟据这几个字节的内容就可以判断文件的类型,这几个字节也被称为“魔数”(magic number),比如class文件的魔数就是“CAFEBABE”。
目前在WEB系统中,对上传文件时都需要做上传文件的类型校验,通常的做法可分为客户端校验和服务端校验,而服务端校验又可以分为文件头content-type字段校验、文件后缀名校验、文件魔数(文件内容头)校验。
1、客户端校验
一般都通过JavaScript脚本校验上传文件的后缀名,有白名单形式也有黑名单形式。实现方式:在浏览加载文件但还未点击上传按钮时便调用JavaScript脚本校验上传文件的后缀名,若不符合上传要求则弹出提示对话框。
2、服务端校验
a)对文件上传请求的Content-Type头信息进行校验,例如image/**为图像文件、application/pdf为PDF文件、application/msword为Office文档等。
b)对文件后缀名进行校验,通过后缀名校验,例如exe为可执行文件、zip为压缩文件、docx为Office文档、png为图像文件、avi为视频文件等。
c)对文件魔数(文件内容头)进行校验,通过读取文件流,根据文件魔数(文件流中特定的一些字节标识)来校验。
通过客户端校验和服务端校验可以基本实现文件上传校验的功能,然而在安全性较高的业务场景中,目前常见的文件上传校验方法存在一些不足,如下:
1、存在被恶意绕过的风险
采用客户端校验可以通过工具直接绕过JavaScript脚本的执行,进而绕过前端校验逻辑;采用服务端校验时可以通过渗透工具修改Content-Type头信息来绕过服务端校验,或在原始文件的文件头前面增加有效的文件魔数信息来欺骗绕过服务端校验。采用文件名后缀校验存在大小写绕过风险(例如采用黑名单方式拦截exe、bin、so等后缀文件,在拦截逻辑不严谨的情况下可通过Exe、Bin、sO等大小写绕过)。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于四川中电启明星信息技术有限公司,未经四川中电启明星信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110997267.2/2.html,转载请声明来源钻瓜专利网。