CN111901337B - 文件上传方法、系统及存储介质 - Google Patents
文件上传方法、系统及存储介质 Download PDFInfo
- Publication number
- CN111901337B CN111901337B CN202010735199.8A CN202010735199A CN111901337B CN 111901337 B CN111901337 B CN 111901337B CN 202010735199 A CN202010735199 A CN 202010735199A CN 111901337 B CN111901337 B CN 111901337B
- Authority
- CN
- China
- Prior art keywords
- file
- detection
- uploading
- server
- extension
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1433—Vulnerability analysis
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Storage Device Security (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请涉及安全检测,具体公开了一种文件上传方法、系统及存储介质,所述方法包括:在检测到上传文件操作时,前端对所述上传文件操作对应的文件进行第一级检测;在所述文件通过所述第一级检测时,所述前端传输至所述服务端,所述服务端对所述文件进行第二级检测;在所述文件通过所述第二级检测时,所述服务端将所述文件传输至与所述服务端隔离的环境,在所述隔离的环境中对所述文件进行预加载;所述服务端接收到所述隔离的环境确定所述文件为安全文件的确认信息时,对所述文件进行第三级检测;在所述文件通过所述第三级检测时,所述服务端对所述文件进行解析,完成文件上传。有效防御文件上传漏洞及渗透,提高了文件的安全性。
Description
技术领域
本申请涉及安全检测技术领域,尤其涉及一种文件上传方法、系统及存储介质。
背景技术
目前,在Web应用程序中经常会涉及到文件上传功能,例如在系统录单页面、后台管理页面或单证操作页面上传DOC、DOCX、XLSX、JPG、PNG等格式的附件,只要Web应用程序允许上传文件,就有可能存在文件上传漏洞,容易造成非法份子渗透到程序后台破坏或是窃取文件以及文件中的商业数据。因此有必要提供一种基于Web应用程序的文件上传方法以解决上述不安全的问题。
发明内容
本申请提供了一种安全检测的一种文件上传方法、系统及存储介质,有效防御文件上传漏洞及渗透,进而可以防止文件泄露,并提高了文件的安全性。
第一方面,本申请提供了一种文件上传方法,所述方法包括:
在检测到上传文件操作时,前端对所述上传文件操作对应的文件进行第一级检测;
在所述文件通过所述第一级检测时,所述前端传输至所述服务端,以供所述服务端对所述文件进行第二级检测;
在所述文件通过所述第二级检测时,所述服务端将所述文件传输至与所述服务端隔离的环境,在所述隔离的环境中对所述文件进行预加载,以确定所述文件是否为安全文件;
在所述服务端接收到所述隔离的环境确定所述文件为安全文件的确认信息时,所述服务端对所述文件进行第三级检测;
在所述文件通过所述第三级检测时,所述服务端对所述文件进行解析,得到所述文件,完成文件上传。
第二方面,本申请还提供了一种文件上传系统,所述文件上传系统包括至少两个计算机设备,分别对应前端和服务端,其中,所述计算机设备包括存储器和处理器;所述存储器用于存储计算机程序;所述处理器,用于执行所述计算机程序并在执行所述计算机程序时实现如上述的文件上传方法。
第三方面,本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时使所述处理器实现如上述的文件上传方法。
本申请公开了一种文件上传方法、系统及存储介质,在前端检测到用户上传文件至服务端时,前端对所述上传文件进行第一级检测;在所述文件通过所述第一级检测后,将所述文件传输至服务端,由所述服务端对所述文件进行第二级检测;在所述文件经过第二级检测后,将所述文件传输至与所述服务器隔离的环境,在所述隔离的环境中对所述文件进行预加载,并通过预加载确定所述文件是否为安全文件;若所述文件为安全文件,则服务端对所述文件进行第三级检测;在所述文件经过第三级检测后,对所述文件进行解析,得到所述文件,完成文件上传。本申请是通过三级检测方式,防御文件上传漏洞及渗透,由此可以提高系统的安全性,进而防止文件泄露以及确保文件的安全。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请的实施例提供的一种文件上传方法的应用场景示意图;
图2是本申请的实施例提供的一种文件上传方法的示意流程图;
图3是本申请的实施例提供的对图片文件进行特殊处理的步骤示意流程图;
图4为本申请的实施例提供的一种文件上传系统的结构示意性框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
附图中所示的流程图仅是示例说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解、组合或部分合并,因此实际执行的顺序有可能根据实际情况改变。
应当理解,在此本申请说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本申请。如在本申请说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当进理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
本申请的实施例提供了一种文件上传方法、系统及存储介质。其中,该文件上传方法可以文件上传系统(比如可以为基于Web的业务操作系统),用于有效防御文件上传漏洞及渗透,进而可以防止文件泄露,并提高了文件的安全性。
下面结合附图,对本申请的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。
请参阅图1,图1是本申请的实施例提供的一种文件上传方法的应用场景示意图。如图1所示,该应用场景即文件上传系统,具体包括前端和服务端。
具体地,前端为运行Web应用程序的终端;服务端为服务器上运行该Web应用程序的服务端,前端包括用于轻量级检测的第一级检测,所述服务端包括用于组合检测的第二级检测及漏洞检测的第三级检测;在文件上传时,可以有效防御文件上传漏洞及渗透,进而可以防止文件泄露,并提高了文件的安全性。
其中,终端可以包括智能手机、平板电脑、笔记本电脑或者台式电脑等。
请参阅图2,图2是本申请的实施例提供的一种文件上传方法的示意流程图。该文件上传方法可应用于图1中的文件上传系统中,有效防御文件上传漏洞及渗透,进而可以防止文件泄露,并提高了文件的安全性。
如图2所示,该文件上传方法具体包括步骤S101至步骤S105。
S101、在检测到上传文件操作时,所述前端对所述上传文件操作对应的文件进行第一级检测。所述文件为用户由前端上传至服务端的文件。
第一级检测包括文件名字符检测、文件扩展名白名单比对和/或第一文件上传路径处理。
在一些实施方式中,当然还可以由前端对上传文件的大小进行检测,判断上传文件大小是否大于或等于预设文件大小阈值,通过预设文件大小阈值可确定上传文件如果太大(即大于或等于预设文件大小阈值),该文件即为超过上限的文件,则提示用户不能上传,通过判断文件大小也可以在一定程度防止攻击,但是通常攻击脚本达不到预设文件大小阈值,因此还需做其他检测处理才可以。
具体地,文件名字符检测,包括将扩展名中大写字母转小写字母、剔除截断字符号、多扩展名级联检测和/或黑名单匹配。
1)、扩展名中大写字母转小写字母,可通过截取上传路径中的文件扩展名,对该扩展名进行统一转小写处理,即将扩展名中大写字母转成小写字母,大写转小写主要为了规避一些自定义的文件扩展名,比如:*.aSP*.AsP,以防止假冒李逵实施后台破坏。
2)、剔除截断字符号,比如剔除截断字符号“0x00”,“%00”,“/00”,“chr(0)”,以防止0x00截断绕过实施攻击,例如:help.jsp.jpg(jsp后面为0x00)。
3)、多扩展名级联检测,可以防止双扩展名绕过解析攻击,比如help.php.123文件名中带了两个“.”号,首先扩展名123并没有在扩展名blacklist(黑名单)里,然后扩展名123也没在Apache可解析扩展名list里,这个时候它会向前搜寻下一个可解析扩展名,或搜寻到.php,最后会以php执行脚本攻击,通过正则表达式递归检查文件名中是否带多个“.”字符,就可以规避这种扩展名级联绕过解析攻击。
4)、黑名单匹配,具体可以为特别文件名黑名单匹配,针对一些常用的执行脚本名定义的黑名单列表,用户上传的时候直接黑名单检测不通过,而合法的扩展名列入到白名单中,约定Web可以合法上传的文件类型。
文件扩展名白名单比对,在通过上述对文件扩展名进行文件名检测处理处理之后,获取处理后的文件扩展名以及扩展名白名单,将处理后的文件扩展名与扩展名白名单进行匹配验证,若扩展名白名单中存在该处理后的文件扩展名,则所述文件的扩展名验证通过。
在处理后的所述文件的扩展名验证通过时,对所述文件的上传路径进行签名及隐藏处理,得到第一文件上传路径。具体地,在处理后的所述文件的扩展名验证通过时,通过所述前端对所述文件的上传路径进行签名处理,得到签名文件名,即在完成上述检测之后,对文件上传路径进行检测,先过滤路径中的截断字符,为了防止用户在提交服务端文件的时候对上传路径篡改,对整个上传文件路径用用MD5(SHA-256)哈希散列算法签名,具体用“系统名+URL路径”生成MD5(SHA-256)签名,并重命名URL中的文件名为:MD5(SHA-256)签名_文件名。
然后,通过所述前端对所述文件的上传脚本进行混淆处理,且对所述文件的上传路径进行隐藏处理,以得到第一文件上传路径,即前端整个脚本做混淆处理,该混淆处理简单的说就是对前端JS源脚本的字符采用编码、加密、变形、切分等方式的处理,使得第三方无法了解脚本的代码构成、语法结构和代码逻辑意图。为同时对文件上传路径做隐藏处理(脚本混淆处理后在脚本中的文件上传路径字符已经无法分辨了,就相当于隐藏了文件上传路径),这样能有效规避用户通过工具篡改上传路径,在路径上加执行脚本或是命令。
在前端对用户上传的文件进行轻量级检测,实现前端传输至服务端前的第一级检测,有效保障文件传输至服务端前的安全性。
S102、在所述文件通过所述前端的第一级检测时,所述前端传输至所述服务端,以供所述服务端对经过所述第一级检测后的文件进行第二级检测。
所述第二级检测包括MINE类型检测、第二文件上传路径处理、文件扩展名白名单比对和/或文件内容检测。
具体地,在前端传输文件到后端服务器(服务端)之后,首先进行MIME类型检测,MIME(Multipurpose Internet Mail Extensions)是描述消息内容类型的因特网标准,一般用户上传的文件在Content-Type(实体头部)中会有特定的标示,当然这种检测也可以通过第三方抓包工具篡改。
在所述文件通过所述MIME类型检测后,对检测后的文件的第二文件上传路径与所述第一文件上传路径进行比对,得到文件内容。具体地,所述服务端接收到所述前端发送的签名文件名后,进行哈希散列比对,得到比对结果;对所述比对结果进行签名,得到签名结果;比对所述签名文件名和签名结果,得到文件内容。
在一些实施方式中,服务端接收到前端传来的用MD5(SHA-256)签名的文件URL,进行哈希散列比对,同样用“系统名+URL路径”用MD5(SHA-256)签名,比对客户端传过来的值,如果用户用工具在请求过程中有篡改则比对不通过,然后再重复一遍前端做的检测,文件扩展名、剔除截断字符、检测级联扩展名、检查特殊文件名黑名单、匹配文件名白名单,从而得到文件内容。
接着更进一步做文件内容检测,以确定所述文件内容是否被篡改。具体地,首先获取文件首字节码,截取文件头10字节幻数信息,幻数magic number,它可以用来标记文件或者协议的格式,很多文件都有幻数标志来表明该文件的格式。基本上每种类型的文件会有对应的字节码,比如docx、pptx、xlsx文件对应的字节码为“504b0304140006000800”,jpg文件会对应的字节码为“ffd8ffe000104a464946”,png文件对应的字节码为“89504e470d0a1a0a0000”,通过文件头10字节幻数信息取到对应的扩展名再与URL中的扩展名比对就可以规避一部分篡改的可能。接着再遍历文件字符,匹配字符黑名单中的执行命令或脚本关键字,比如匹配“<?php”,就有类似攻击脚本的嫌疑。
通过服务端对接收到的文件进行第二级检测,有效避免攻击脚本的嫌疑。
S103、在所述文件通过所述服务端的第二级检测时,所述服务端将所述文件传输至与所述服务端隔离的环境,在所述隔离的环境中对所述文件进行预加载,以确定经过所述服务端的第二级检测后的文件是否为安全文件。
具体地,经过上述两级的检测,基本可以规避掉一般用户的攻击了,但是为了完全避免对文件进行攻击,还可通过对文件进行预加载检测,把通过第二级检测的文件内容传输到一个与当前服务端逻辑隔离的环境中,该环境中的文件夹设定了特定的权限,比如只读不能写、不能跨文件夹访问之外的文件、不能执行选定应用之外的其它应用等,在这种隔离的环境中对文件进行预加载。若所述文件内容预加载成功,则说明所述预加载操作中不存在非法操作,则确定所述文件为安全文件;若所述文件内容预加载失败,则确定所述文件是不安全的文件。
在一些实施方式中,若所述文件内容包括图片文件,则对一些图片文件要进行特殊处理,才能确保图片文件不受攻击。如图3所示,对图片文件进行特殊处理,具体包括以下内容:
S103a、对所述图片文件进行一次渲染和二次渲染;S103b、分别对所述第一渲染后的文件内容及二次渲染后的文件内容进行字符黑名单匹配;S03c、在检测到所述黑名单中存在渲染时的执行命令或脚本关键字时,确定所述文件为非安全文件。
在所述文件为图片文件时,采用一次渲染和二次渲染后比对方案,分别对一二次渲染后的文件内容进行字符黑名单匹配,如发现执行命令或脚本关键字在黑名单中,则直接判别该文件不是安全的,经过两次比对后,基本上能规避大部分的篡改可能。如果二次渲染针对文件加载器进行溢出攻击,监控文件预加载是失败的,则认为该文件是不安全的。最后,该逻辑隔离服务器把文件预加载结果反馈到文件上传的服务端,服务端用来决定是继续下面的检测流程还是中断当前流程。
其中,一次渲染和二次渲染,简单的说为图片的渲染,是指解码函数对PNG或JPG格式的图片文件解压缩、解码、转成位图数据输出给显示设置显示图片的这个过程。这里的一次渲染把指原始图片转成位图数据输出到显示器显示的过程、二次渲染是指把第一次渲染后的图片文件数据经过转换、编码、压缩变成一个新的图片,然后再经过图片文件的解压缩、解码、转成位图数据输出到显示器显示的过程。
S104、在所述服务端接收到所述隔离的环境确定所述文件为安全文件的确认信息时,所述服务端对经过所述前端的第一级检测及服务端的第二级检测后的文件进行第三级检测。
其中,隔离的环境对文件是否安全进行检测,且将检测结果发送给服务端,当检测结果为确定文件为安全文件的确认信息时,服务端对经过所述前端的第一级检测及服务端的第二级检测后的文件进行第三级检测。所述第三级检测包括应用层漏洞检测和病毒扫描。具体地,通过所述服务端对所述文件进行应用层漏洞检测,其中,所述应用层漏洞检测为所述服务端在不同的容器部署环境中对应的检测;在所述文件通过所述应用层漏洞检测时,对检测后的文件进行病毒扫描。
在一些实施方式中,应用层检测漏洞,需要规避IIS文件解析漏洞、Apache1.x和2.x解析漏洞、PHP CGI解析漏洞、Nginx<8.03空字节代码执行漏洞等,通常应用层的漏洞检测是需要针对不同的容器部署环境检测,比如规避特定的文件名类型及文件命名规则、检测容器部署环境的配置项等。应用层版本更新比较频繁,需要不停更新检测规则。
可以理解的是,容器技术可以使得构建产品所需要的所有的服务能够迅速快捷的重新部署,并且可以根据需求横向的扩展,且保证高可用性,在出现问题的时候可以自动重启或者启动备份服务,因此,需要针对不同的容器部署环境进行检测。
在所述文件通过所述应用层漏洞检测时,对检测后的文件进行病毒扫描,具体地,服务端组合规则全部检测完后再调用API接口进行病毒扫描,病毒扫描主要是更进一步的对文件字节码进行病毒指令特征码的扫描匹配,防止文件被注入木马病毒脚本等破坏服务器及影响网络安全的指令,病毒扫描通过后方可进行上传文件的正式解析。
S105、在依次经过所述前端的第一级检测及服务端的第二级检测后的文件通过所述第三级检测时,所述服务端对依次经过第一级检测、第二级检测及第三级检测后的文件进行解析,得到所述文件,完成文件上传。
具体地,服务端在所述文件经过第三级检测检测后,对所述文件进行文件解析,得到由前端上传的文件并保存,完成文件上传。
上述实施例提供文件上传方法,在前端检测到用户上传文件至服务端时,前端对所述上传文件进行第一级检测;在所述文件通过所述第一级检测后,将所述文件传输至服务端,由所述服务端对所述文件进行第二级检测;在所述文件经过第二级检测后,将所述文件传输至与所述服务器隔离的环境,在所述隔离的环境中对所述文件进行预加载,并通过预加载确定所述文件是否为安全文件;若所述文件为安全文件,则对所述文件进行第三级检测;在所述文件经过第三级检测后,对所述文件进行解析,得到所述文件,完成文件上传。本申请是通过三级检测方式,防御文件上传漏洞及渗透,由此可以提高系统的安全性,进而防止文件泄露以及确保文件的安全。
并且,可以提升系统安全性和合规性,又能有效的检测出针对上传文件漏洞带来的渗透及非法操作,保证系统合规地使用。还可以有效减少网络安全维护成本,能自动阻止针对上传文件漏洞带来的渗透及非法操作,整个原理都是改进软件程序来实现,无需额外投入硬件成本也无需人工干预,无需网络安全专员去维护,能做到即时检测,有效实现防御文件上传漏洞及渗透,提高了文件上传的安全性。
请参阅图4,图4是本申请的实施例提供的一种文件上传系统的结构示意性框图。该文件上传系统包括至少两个计算机设备,分别对应终端和服务器,终端上运行的Web应用程序为前端,服务器上运行的Web应用程序的对应的服务端。
参阅图4,该计算机设备包括通过系统总线连接的处理器、存储器和网络接口,其中,存储器可以包括非易失性存储介质和内存储器。
非易失性存储介质可存储操作系统和计算机程序。该计算机程序包括程序指令,该程序指令被执行时,可使得处理器执行任意一种文件上传方法。
处理器用于提供计算和控制能力,支撑整个计算机设备的运行。
内存储器为非易失性存储介质中的计算机程序的运行提供环境,该计算机程序被处理器执行时,可使得处理器执行任意一种文件上传方法。
该网络接口用于进行网络通信,如发送分配的任务等。本领域技术人员可以理解,图4中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
应当理解的是,处理器可以是中央处理单元(Central Processing Unit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。其中,通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
其中,在一个实施例中,所述处理器用于运行存储在存储器中的计算机程序,以实现如下步骤:
在检测到上传文件操作时,所述前端对所述上传文件操作对应的文件进行第一级检测;在所述文件通过所述前端的第一级检测时,所述前端传输至所述服务端,以供所述服务端对经过所述第一级检测后的文件进行第二级检测;在所述文件通过所述服务端的第二级检测时,所述服务端将所述文件传输至与所述服务端隔离的环境,在所述隔离的环境中对所述文件进行预加载,以确定经过所述服务端的第二级检测后的文件是否为安全文件;在所述服务端接收到所述隔离的环境确定所述文件为安全文件的确认信息时,所述服务端对经过所述前端的第一级检测及服务端的第二级检测后的文件进行第三级检测;在依次经过所述前端的第一级检测及服务端的第二级检测后的文件通过所述第三级检测时,所述服务端对依次经过第一级检测、第二级检测及第三级检测后的文件进行解析,得到所述文件,完成文件上传。
在一些实施例中,所述处理器实现所述前端对所述上传文件操作对应的文件进行第一级检测,包括:
所述前端对所述文件的扩展名进行文件名检测处理,检测通过后得到处理后的所述文件的扩展名及扩展名白名单;将处理后的所述文件的扩展名与扩展名白名单进行匹配验证,若所述扩展名白名单中存在处理后的所述文件的扩展名,则判定处理后的所述文件的扩展名验证通过;在处理后的所述文件的扩展名验证通过时,对所述文件的上传路径进行签名及隐藏处理,得到第一文件上传路径。
在一些实施例中,所述处理器实现所述在处理后的所述文件的扩展名验证通过时,对所述文件的上传路径进行签名及隐藏处理,得到第一文件上传路径,包括:在处理后的所述文件的扩展名验证通过时,所述前端对所述文件的上传路径进行签名处理,得到签名文件名;所述前端对所述文件的上传脚本进行混淆处理,且对所述文件的上传路径进行隐藏处理,以得到第一文件上传路径。
在一些实施例中,所述处理器还实现所述在所述文件通过所述第一级检测时,所述前端传输至所述服务端,以供所述服务端对所述上传文件进行第二级检测,包括:
在所述文件传输至所述服务端以后,所述服务端对所述文件进行MIME类型检测;在所述文件通过所述MIME类型检测后,对检测后的文件的第二文件上传路径与所述第一文件上传路径进行比对,得到文件内容;对所述文件内容进行检测,以确定所述文件内容是否被篡改。
在一些实施例中,所述处理器实现所述在所述隔离的环境中对所述文件进行预加载,以确定所述文件是否为安全文件,包括:
在所述文件通过所述第二级检测时,得到检测后的文件内容;在所述隔离环境对检测后的文件内容进行预加载操作,且监控所述预加载操作;若所述文件内容预加载成功,确定所述文件为安全文件;若所述文件内容预加载失败,确定所述文件为非安全文件。
在一些实施例中,所述处理器实现所述在所述隔离的环境中对所述文件进行预加载,以确定所述文件是否为安全文件,包括:
所述文件内容包括图片文件,则对所述图片文件进行一次渲染和二次渲染;分别对所述第一渲染后的文件内容及二次渲染后的文件内容进行字符黑名单匹配;在检测到所述黑名单中存在渲染时的执行命令或脚本关键字时,确定所述文件为非安全文件。
在一些实施例中,所述处理器实现所述服务端对所述文件进行第三级检测,包括:
所述服务端对所述文件进行应用层漏洞检测;在所述文件通过所述应用层漏洞检测时,对检测后的文件进行病毒扫描。
本申请的实施例中还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序中包括程序指令,所述处理器执行所述程序指令,实现本申请实施例提供的任一项文件上传方法。
其中,所述计算机可读存储介质可以是前述实施例所述的计算机设备的内部存储单元,例如所述计算机设备的硬盘或内存。所述计算机可读存储介质也可以是所述计算机设备的外部存储设备,例如所述计算机设备上配备的插接式硬盘,智能存储卡(SmartMedia Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (9)
1.一种文件上传方法,其特征在于,应用于文件上传系统,所述文件上传系统包括前端和服务端,所述前端包括用于轻量级检测的第一级检测,所述服务端包括用于组合检测的第二级检测及漏洞检测的第三级检测;所述方法包括:
在检测到上传文件操作时,所述前端对所述上传文件操作对应的文件进行第一级检测;
在所述文件通过所述前端的第一级检测时,所述前端传输至所述服务端,以供所述服务端对经过所述第一级检测后的文件进行第二级检测;
在所述文件通过所述服务端的第二级检测时,所述服务端将所述文件传输至与所述服务端隔离的环境,在所述隔离的环境中对所述文件进行预加载,以确定经过所述服务端的第二级检测后的文件是否为安全文件,其中,所述隔离的环境中的文件夹设定了特定的权限,包括:只读不能写、不能跨文件夹访问之外的文件和不能执行选定应用之外的其它应用;
在所述服务端接收到所述隔离的环境确定所述文件为安全文件的确认信息时,所述服务端对经过所述前端的第一级检测及服务端的第二级检测后的文件进行第三级检测,包括:所述服务端对所述文件进行应用层漏洞检测,其中,所述应用层漏洞检测为所述服务端在不同的容器部署环境中对应的检测;在所述文件通过所述应用层漏洞检测时,对检测后的文件进行病毒扫描;
在依次经过所述前端的第一级检测及服务端的第二级检测后的文件通过所述第三级检测时,所述服务端对依次经过第一级检测、第二级检测及第三级检测后的文件进行解析,得到所述文件,完成文件上传。
2.根据权利要求1所述的方法,其特征在于,所述前端对所述上传文件操作对应的文件进行第一级检测,包括:
所述前端对所述文件的扩展名进行文件名检测处理,得到处理后的所述文件的扩展名及扩展名白名单;
将处理后的所述文件的扩展名与扩展名白名单进行匹配验证;
若所述扩展名白名单中存在处理后的所述文件的扩展名,则判定处理后的所述文件的扩展名验证通过;
在处理后的所述文件的扩展名验证通过时,对所述文件的上传路径进行签名及隐藏处理,得到第一文件上传路径。
3.根据权利要求2所述的方法,其特征在于,所述在处理后的所述文件的扩展名验证通过时,对所述文件的上传路径进行签名及隐藏处理,得到第一文件上传路径,包括:
在处理后的所述文件的扩展名验证通过时,所述前端对所述文件的上传路径进行签名处理,得到签名文件名;
所述前端对所述文件的上传脚本进行混淆处理,且对所述文件的上传路径进行隐藏处理,以得到第一文件上传路径。
4.根据权利要求3所述的方法,其特征在于,所述在所述文件通过所述第一级检测时,所述前端传输至所述服务端,以供所述服务端对所述上传文件进行第二级检测,包括:
在所述文件传输至所述服务端以后,所述服务端对所述文件进行MIME类型检测;
在所述文件通过所述MIME类型检测后,对检测后的文件的第二文件上传路径与所述第一文件上传路径进行比对,得到文件内容;
对所述文件内容进行检测,以确定所述文件内容是否被篡改。
5.根据权利要求4所述的方法,其特征在于,所述对检测后的文件的第二文件上传路径与所述第一文件上传路径进行比对,得到文件内容包括:
所述服务端接收到所述前端发送的签名文件名后,进行哈希散列比对,得到比对结果;
对所述比对结果进行签名,得到签名结果;
比对所述签名文件名和签名结果,得到文件内容。
6.根据权利要求1至5中任一项所述的方法,其特征在于,所述在所述隔离的环境中对所述文件进行预加载,以确定所述文件是否为安全文件,包括:
在所述文件通过所述第二级检测时,得到检测后的文件内容;
在所述隔离环境对检测后的文件内容进行预加载操作,且监控所述预加载操作;
若所述文件内容预加载成功,确定所述文件为安全文件;
若所述文件内容预加载失败,确定所述文件为非安全文件。
7.根据权利要求1至5中任一项所述的方法,其特征在于,所述在所述隔离的环境中对所述文件进行预加载,以确定所述文件是否为安全文件,包括:
所述文件内容包括图片文件,则对所述图片文件进行一次渲染和二次渲染;
分别对所述一次渲染后的文件内容及二次渲染后的文件内容进行字符黑名单匹配;
在检测到所述黑名单中存在渲染时的执行命令或脚本关键字时,确定所述文件为非安全文件。
8.一种文件上传系统,其特征在于,所述文件上传系统包括至少两个计算机设备,分别对应前端和服务端,其中,所述计算机设备包括存储器和处理器;
所述存储器用于存储计算机程序;
所述处理器,用于执行所述计算机程序并在执行所述计算机程序时实现如权利要求1至7中任一项所述的文件上传方法。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时使所述处理器实现如权利要求1至7中任一项所述的文件上传方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010735199.8A CN111901337B (zh) | 2020-07-28 | 2020-07-28 | 文件上传方法、系统及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010735199.8A CN111901337B (zh) | 2020-07-28 | 2020-07-28 | 文件上传方法、系统及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111901337A CN111901337A (zh) | 2020-11-06 |
CN111901337B true CN111901337B (zh) | 2023-08-15 |
Family
ID=73190247
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010735199.8A Active CN111901337B (zh) | 2020-07-28 | 2020-07-28 | 文件上传方法、系统及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111901337B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112491912B (zh) * | 2020-12-02 | 2022-12-09 | 奇安信科技集团股份有限公司 | 数据处理方法、装置、系统和电子设备 |
CN113190837A (zh) * | 2021-03-29 | 2021-07-30 | 贵州电网有限责任公司 | 一种基于文件服务系统的web攻击行为检测方法及系统 |
CN113420300B (zh) * | 2021-06-21 | 2023-09-08 | 福建天晴数码有限公司 | 一种检测和防御文件上传漏洞的方法及系统 |
CN113595981B (zh) * | 2021-06-25 | 2023-07-28 | 新浪技术(中国)有限公司 | 上传文件威胁检测方法及装置、计算机可读存储介质 |
CN113595997A (zh) * | 2021-07-14 | 2021-11-02 | 上海淇玥信息技术有限公司 | 一种文件上传的安全检测方法、装置和电子设备 |
CN113641999A (zh) * | 2021-08-27 | 2021-11-12 | 四川中电启明星信息技术有限公司 | 一种在web系统文件上传过程中的文件类型自动校验方法 |
CN114301627A (zh) * | 2021-11-29 | 2022-04-08 | 北京天融信网络安全技术有限公司 | 上传文件安全扫描方法、设备及计算机可读存储介质 |
CN117081830B (zh) * | 2023-09-07 | 2024-04-05 | 苏州市职业大学(苏州开放大学) | 一种网络安全监测服务器 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103001937A (zh) * | 2011-09-19 | 2013-03-27 | 珠海市君天电子科技有限公司 | 孤岛式以太网防御移动存储介质病毒的系统和方法 |
CN108038375A (zh) * | 2017-12-21 | 2018-05-15 | 北京星河星云信息技术有限公司 | 一种恶意文件检测方法及装置 |
CN108924139A (zh) * | 2018-07-05 | 2018-11-30 | 杭州安恒信息技术股份有限公司 | 基于云端提升文件检测效率的方法、装置及执行服务器 |
CN109327451A (zh) * | 2018-10-30 | 2019-02-12 | 深信服科技股份有限公司 | 一种防御文件上传验证绕过的方法、系统、装置及介质 |
CN110401634A (zh) * | 2019-06-24 | 2019-11-01 | 北京墨云科技有限公司 | 一种Web应用漏洞检测规则引擎实现方法及终端 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10397246B2 (en) * | 2010-07-21 | 2019-08-27 | Radware, Ltd. | System and methods for malware detection using log based crowdsourcing analysis |
-
2020
- 2020-07-28 CN CN202010735199.8A patent/CN111901337B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103001937A (zh) * | 2011-09-19 | 2013-03-27 | 珠海市君天电子科技有限公司 | 孤岛式以太网防御移动存储介质病毒的系统和方法 |
CN108038375A (zh) * | 2017-12-21 | 2018-05-15 | 北京星河星云信息技术有限公司 | 一种恶意文件检测方法及装置 |
CN108924139A (zh) * | 2018-07-05 | 2018-11-30 | 杭州安恒信息技术股份有限公司 | 基于云端提升文件检测效率的方法、装置及执行服务器 |
CN109327451A (zh) * | 2018-10-30 | 2019-02-12 | 深信服科技股份有限公司 | 一种防御文件上传验证绕过的方法、系统、装置及介质 |
CN110401634A (zh) * | 2019-06-24 | 2019-11-01 | 北京墨云科技有限公司 | 一种Web应用漏洞检测规则引擎实现方法及终端 |
Non-Patent Citations (1)
Title |
---|
文件上传漏洞研究与实践;黄志华;信息安全研究;第6卷(第02期);第151-158页 * |
Also Published As
Publication number | Publication date |
---|---|
CN111901337A (zh) | 2020-11-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111901337B (zh) | 文件上传方法、系统及存储介质 | |
US11218495B2 (en) | Resisting the spread of unwanted code and data | |
US10491618B2 (en) | Method and apparatus for website scanning | |
US9003531B2 (en) | Comprehensive password management arrangment facilitating security | |
US8621223B2 (en) | Data security method and system | |
CN110879903A (zh) | 证据存储方法、证据验证方法及装置、设备和介质 | |
US20150154398A1 (en) | Optimizing virus scanning of files using file fingerprints | |
US9202050B1 (en) | Systems and methods for detecting malicious files | |
US10521423B2 (en) | Apparatus and methods for scanning data in a cloud storage service | |
TW201812634A (zh) | 威脅情報雲 | |
WO2008068459A2 (en) | Detecting exploits in electronic objects | |
US8485428B1 (en) | Systems and methods for providing security information about quick response codes | |
US11916937B2 (en) | System and method for information gain for malware detection | |
US11496291B2 (en) | Validating received sensor data using computer cryptographic processing | |
US10511631B2 (en) | Safe data access through any data channel | |
CN108563396B (zh) | 一种安全的云端对象存储方法 | |
US11526609B1 (en) | System and method for recent file malware scanning | |
US20210319136A1 (en) | Verifying authenticity of content of electronic documents | |
US11848919B1 (en) | Patternless obfuscation of data with low-cost data recovery | |
US20140157412A1 (en) | Device, method and non-transitory computer readable storage medium thereof for performing anonymous testing on electronic digital | |
Hughes | Review and Redaction-Tolerant Image Verification Using Cryptographic Methods | |
CN114756837A (zh) | 一种基于区块链的数字内容溯源方法及系统 | |
Islam et al. | Maintaining data consistency of XML databases using verification techniques |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |