文件检测方法、装置、计算机设备和存储介质与流程

文档序号:30066716发布日期:2022-05-18 01:06阅读:63来源:国知局
文件检测方法、装置、计算机设备和存储介质与流程

1.本技术涉及计算机技术领域,尤其涉及一种文件检测方法、装置、计算机设备和存储介质。


背景技术:

2.由于用户对于网站的业务需求,网站会为用户提供文件上传、下载的功能,但是对于上传、下载的文件没有做限制,如果用户修改文件名或者修改文件名后缀,即可通过上传文件到服务器的其它路径或者下载到其它目录的文件,产生文件操控的风险,存在文件上传/下载的漏洞,可能会对存储目录中已有的文件造成攻击。


技术实现要素:

3.为了解决上述技术问题,本技术提供了一种文件检测方法、装置、计算机设备和存储介质。
4.第一方面,本技术提供了一种文件检测方法,包括:
5.在接收到用户请求时,解析所述用户请求得到对应的第一文件标识;其中,所述用户请求用于请求上传目标文件或下载目标文件;
6.在响应所述用户请求的过程中,跟踪与所述第一文件标识相关的数据流,得到跟踪日志;
7.在所述第一文件标识与所述跟踪日志中的第二文件标识相匹配时,发送所述目标文件至所述用户请求对应的指定目录;其中,所述第二文件标识为所述跟踪日志中记录时刻最晚的文件标识。
8.第二方面,本技术提供了一种文件检测装置,包括:
9.解析模块,用于在接收到用户请求时,解析所述用户请求得到对应的第一文件标识;其中,所述用户请求用于请求上传目标文件或下载目标文件;
10.跟踪模块,用于在响应所述用户请求的过程中,跟踪与所述第一文件标识相关的数据流,得到跟踪日志;
11.发送模块,用于在所述第一文件标识与所述跟踪日志中的第二文件标识相匹配时,发送所述目标文件至所述用户请求对应的指定目录;其中,所述第二文件标识为所述跟踪日志中记录时刻最晚的文件标识。
12.第三方面,本技术提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
13.在接收到用户请求时,解析所述用户请求得到对应的第一文件标识;其中,所述用户请求用于请求上传目标文件或下载目标文件;
14.在响应所述用户请求的过程中,跟踪与所述第一文件标识相关的数据流,得到跟踪日志;
15.在所述第一文件标识与所述跟踪日志中的第二文件标识相匹配时,发送所述目标
文件至所述用户请求对应的指定目录;其中,所述第二文件标识为所述跟踪日志中记录时刻最晚的文件标识。
16.第四方面,本技术提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
17.在接收到用户请求时,解析所述用户请求得到对应的第一文件标识;其中,所述用户请求用于请求上传目标文件或下载目标文件;
18.在响应所述用户请求的过程中,跟踪与所述第一文件标识相关的数据流,得到跟踪日志;
19.在所述第一文件标识与所述跟踪日志中的第二文件标识相匹配时,发送所述目标文件至所述用户请求对应的指定目录;其中,所述第二文件标识为所述跟踪日志中记录时刻最晚的文件标识。
20.上述文件检测方法、装置、计算机设备和存储介质,所述方法包括:在接收到用户请求时,解析所述用户请求得到对应的第一文件标识;其中,所述用户请求用于请求上传目标文件或下载目标文件;在响应所述用户请求的过程中,跟踪与所述第一文件标识相关的数据流,得到跟踪日志;在所述第一文件标识与所述跟踪日志中的第二文件标识相匹配时,发送所述目标文件至所述用户请求对应的指定目录;其中,所述第二文件标识为所述跟踪日志中记录时刻最晚的文件标识。
21.基于上述文件检测方法,在接收到用户请求时解析用户请求所请求目标文件的文件标识,即得到第一文件标识,也为目标文件的初始标识,但在响应用户请求的过程中,用户可能对目标文件的文件标识进行修改操作,所以跟踪目标文件的文件标识变化,文件标识在不同时刻所发生的变化均记录在跟踪日志中,在向用户请求对应的设备发送相应目标文件之前,将目标文件的初始标识与发送前跟踪日志中最新记录的第二文件标识进行比对,第一文件标识与第二文件标识相匹配,表示目标文件的文件标识在响应用户请求的过程中并未被篡改,可以响应用户请求,将目标文件发送至用户请求对应的指定目录,避免将响应过程中被操控的目标文件上传至非指定目录或下载至非指定目录,对非指定目录中已有的文件造成攻击,通过跟踪文件标识可及时发现文件操控漏洞,提高文件存储的安全性。
附图说明
22.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
23.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
24.图1为一个实施例中文件检测方法的应用环境图;
25.图2为一个实施例中文件检测方法的流程示意图;
26.图3为一个实施例中文件检测装置的程序模块示意图;
27.图4为一个实施例中计算机设备的结构图。
具体实施方式
28.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术的一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本技术保护的范围。
29.图1为一个实施例中文件检测方法的应用环境图。参照图1,该文件检测方法应用于文件检测系统。该文件检测系统包括终端110和服务器120。终端110和服务器120通过网络连接。终端110具体可以是台式终端或移动终端,移动终端具体可以为手机、平板电脑、笔记本电脑等中的至少一种。服务器120可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
30.在一个实施例中,图2为一个实施例中一种文件检测方法的流程示意图,参照图2,提供了一种文件检测方法。本实施例主要以该方法应用于上述图1中的或服务器120来举例说明,该文件检测方法具体包括如下步骤:
31.步骤s210,在接收到用户请求时,解析所述用户请求得到对应的第一文件标识。
32.其中,所述用户请求用于请求上传目标文件或下载目标文件,用户请求包括上传请求和下载请求,上传请求用于请求上传目标文件,下载请求用于请求下载目标文件。
33.具体的,用户请求为用户通过操作终端向服务器发送的请求,上传请求包括目标文件、目标文件的文件标识、终端标识、指示目标文件上传位置的指定目录等,下载请求包括所要请求的目标文件的文件标识、终端标识、指示目标文件下载位置的指定目录等,文件标识具体为文件名或文件名后缀,文件名可以由文字、数字或字母等任意字符构成,文件名后缀用于指示文件的格式类型,文件名后缀具体可以为ace:ace.exe、ain、arj、asp、avi等等。解析用户请求对应的文件标识可得到第一文件标识,在用户请求为上传请求时,若用户通过终端向服务器发送用户请求时并未更改目标文件的文件标识,则解析得到的初始文件标识即为第一文件标识;若用户通过终端向服务器发送用户请求时并输入了指定文件标识,则服务器接收到的目标文件的文件标识为用户输入的指定文件标识,并非目标文件的初始文件标识,即指定文件标识与初始文件标识不同,意味着目标文件的文件标识在用户输入的过程中就发生了改变。
34.步骤s220,在响应所述用户请求的过程中,跟踪与所述第一文件标识相关的数据流,得到跟踪日志。
35.具体的,跟踪日志包括不同时刻下目标文件的文件标识以及文件标识的操作类型,操作类型具体包括未修改、修改、添加、删除等操作,通过跟踪目标文件的文件标识,以确定目标文件在用户请求响应过程中的被操控情况。
36.步骤s230,在所述第一文件标识与所述跟踪日志中的第二文件标识相匹配时,发送所述目标文件至所述用户请求对应的指定目录。
37.其中,所述第二文件标识为所述跟踪日志中记录时刻最晚的文件标识。
38.具体的,在发送目标文件至用户请求对应的指令目录之前,将第一文件标识与跟踪日志中记录时刻最晚的第二文件标识进行比对,第一文件标识与第二文件标识相匹配,表示目标文件的文件标识没有被操控、没有发生变化,可以将目标文件发送至指定目录中,在用户请求为上传请求时,可以将目标文件发送至指定上传路径的指定目录中;在用户请
求为下载请求时,可以将目标文件发送至指定下载路径的指定目录中。
39.一旦文件标识发生篡改,则目标文件无法按照指定下载路径或指定上传路径发送至指定目录中,将会被发送至非指定上传路径或非指定下载路径对应的非指定目录中,将会对非指定目录中已有文件造成攻击,因此基于上述方法可避免将响应过程中被操控的目标文件上传至非指定目录或下载至非指定目录,对非指定目录中已有的文件造成攻击,通过跟踪文件标识可及时发现文件操控漏洞,提高文件存储的安全性。
40.在一个实施例中,所述解析所述用户请求得到对应的第一文件标识之后,所述方法还包括:在所述第一文件标识中检测到预设字符时,对所述第一文件标识进行过滤处理,得到处理后的第三文件标识;在响应所述用户请求的过程中,跟踪与所述第一文件标识相关的数据流,得到跟踪日志,包括:记录所述第三文件标识的生成事件,得到所述跟踪日志。
41.具体的,通过判断目标文件的文件标识中是否存在预设字符,以确定用户输入目标文件时是否操作了目标文件的初始文件标识,预设字符用于指示用户对文件标识进行了相应操作,每个预设字符对应一个操作类型,若目标文件的文件标识中存在预设字符,表示解析得到的文件标识为用户输入的指定文件标识,并非为目标文件的初始标识,将用户输入的指定文件标识作为第一文件标识进行跟踪,对第一文件标识进行过滤处理,以删减第一文件标识中的预设字符,即消除用户对初始文本标识的操作痕迹,得到未经操作的初始文本标识,即上述处理后的第三文件标识。
42.上述过程相当于对目标文件的文件标识进行了修改,第三文件标识的生成事件是与第一文件标识相关的数据流,所以将第三文件标识记录至跟踪日志中,在后续过程中若用户没有对目标文件的文件标识进行修改,则将第三文件标识作为第二文件标识与第一文件标识进行比对,由于第三文件标识是由第一文件标识经过过滤处理得到的,第三文件标识与第一文件标识不匹配,由此确定目标文件在用户输入阶段对目标文件的文件标识进行了操作。
43.例如,用户请求上传的目标文件的初始文件标识为a.txt,但用户在上传时选择../a.txt作为指定文件标识,在检测到文件标识中存在“../”时确定用户在输入过程中已对文件标识进行了操作,因此,解析得到的第一文件标识为../a.txt,对第一文件标识进行过滤处理,以过滤第一文件标识中的“../”,得到过滤处理后的第三文件标识a.txt,将第一文件标识与第三文件标识进行比对,即可确定文件标识在输入阶段被操作修改了。
44.在一个实施例中,所述在响应所述用户请求的过程中,跟踪与所述第一文件标识相关的数据流,得到跟踪日志,包括:确定所述用户请求对应的响应命令;执行所述响应命令,生成相应的响应信息;根据所述响应信息中的插桩标记,确定所述目标文件的文件标识变化,得到所述跟踪日志。
45.其中,所述响应命令包括预设插桩函数,所述预设插桩函数用于跟踪所述响应命令的数据流。
46.具体的,不同的用户请求对应不同的响应命令,通过执行响应命令生成相应的响应信息,响应信息中的插桩标记对应于响应命令中预设插桩函数,每个预设插桩函数对应一个插桩标记,并且不同的预设插桩函数对应不同的操作类型,根据响应信息中存在的插桩标记可确定对文件标识相应操作类型,以此实现对文件标识的跟踪,根据文件标识在不同时刻下的操作类型生成跟踪日志。
47.在一个实施例中,所述在接收到用户请求时,解析所述用户请求得到对应的第一文件标识之前,所述方法还包括:对运行命令中的预设函数进行插桩处理,得到所述响应命令。
48.其中,所述运行命令为插桩处理前的命令,所述预设函数用于指示对文件标识进行操作的函数。
49.具体的,在接收用户请求之前,需要对响应用户请求的运行命令进行插桩处理,通过插桩函数来对与文件标识操作相关的数据流进行跟踪,插桩处理后的运行命令即为上述响应命令。
50.在一个实施例中,所述执行所述响应命令,生成相应的响应信息,包括:在执行到所述响应命令中的所述预设插桩函数时,根据所述预设插桩函数对应的插桩标记生成所述响应信息。
51.具体的,响应命令中插有多个插桩函数,但在执行响应命令的过程中按照用户请求调用相应的函数进行运行,若执行响应命令的过程中调用了预设插桩函数,表示用户对文件标识进行了相应的操作,则将预设插桩函数对应的插桩标记添加至响应信息中,由此根据响应信息中的插桩标记可确定文件标识进行了哪些操作。
52.在一个实施例中,所述得到跟踪日志之后,所述方法还包括:在所述第一文件标识与所述第二文件标识不匹配时,根据所述第一文件标识与所述第二文件标识之间的差异标识生成报警信息。
53.其中,所述报警信息用于指示所述目标文件的文件标识被篡改。
54.具体的,第一文件标识与第二文件标识不匹配时,表示目标文件的文件标识经历了修改操作,则确定第一文件标识与第二文件标识之间的差异标识,通过差异标识可确定目标文件所经历的操作类型,并根据差异标识生成报警信息,通过报警信息告知后台人员文件标识被用户篡改,便于后台人员根据报警信息及时采取相应的补救措施。
55.在一个实施例中,所述根据所述第一文件标识与所述第二文件标识之间的差异标识生成报警信息之后,所述方法还包括:在所述第一文件标识中未检测到预设字符时,根据所述第一文件标识确定预设目录;发送所述目标文件至所述预设目录中。
56.其中,所述预设目录用于存储所述目标文件,并为所述目标文件提供下载路径。
57.具体的,在第一文件标识中未检测到预设字符,表示第一文件标识为初始文件标识,在用户输入阶段并未发生修改操作,即在输入之后的过程中文件标识发生了修改操作,变更为第二文件标识,则可根据目标文件的初始文件标识确定相应的上传路径或下载路径,即预设目录,将目标文件上传或下载至预设目录中,以此实现即使在文件标识被篡改的情况下也可令目标文件上传或下载至其指定预设的目录,不会被发送至非指定目录中攻击其他已有文件。
58.上述文件检测方法,利用文件检测方法独权的技术特征进行推导,实现能够解决背景技术中所提出技术问题的有益效果。
59.图2为一个实施例中文件检测方法的流程示意图。应该理解的是,虽然图2的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2中的至少一部分步骤可以包括多个子步骤或者多个阶段,
这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
60.在一个实施例中,如图3所示,提供了一种文件检测装置,包括:
61.解析模块310,用于在接收到用户请求时,解析所述用户请求得到对应的第一文件标识;其中,所述用户请求用于请求上传目标文件或下载目标文件;
62.跟踪模块320,用于在响应所述用户请求的过程中,跟踪与所述第一文件标识相关的数据流,得到跟踪日志;
63.发送模块330,用于在所述第一文件标识与所述跟踪日志中的第二文件标识相匹配时,发送所述目标文件至所述用户请求对应的指定目录;其中,所述第二文件标识为所述跟踪日志中记录时刻最晚的文件标识。
64.在一个实施例中,所述解析模块310还用于:
65.在所述第一文件标识中检测到预设字符时,对所述第一文件标识进行过滤处理,得到处理后的第三文件标识;
66.跟踪模块320还用于:
67.记录所述第三文件标识的生成事件,得到所述跟踪日志。
68.在一个实施例中,所述跟踪模块320还用于:
69.确定所述用户请求对应的响应命令;其中,所述响应命令包括预设插桩函数,所述预设插桩函数用于跟踪所述响应命令的数据流;
70.执行所述响应命令,生成相应的响应信息;
71.根据所述响应信息中的插桩标记,确定所述目标文件的文件标识变化,得到所述跟踪日志。
72.在一个实施例中,所述装置还包括插桩模块,用于:
73.对运行命令中的预设函数进行插桩处理,得到所述响应命令;其中,所述运行命令为插桩处理前的命令,所述预设函数用于指示对文件标识进行操作的函数。
74.在一个实施例中,所述跟踪模块320还用于:
75.在执行到所述响应命令中的所述预设插桩函数时,根据所述预设插桩函数对应的插桩标记生成所述响应信息。
76.在一个实施例中,所述得到跟踪日志之后,所述装置还包括报警模块,用于:
77.在所述第一文件标识与所述第二文件标识不匹配时,根据所述第一文件标识与所述第二文件标识之间的差异标识生成报警信息;其中,所述报警信息用于指示所述目标文件的文件标识被篡改。
78.在一个实施例中,所述发送模块330还用于:
79.在所述第一文件标识中未检测到预设字符时,根据所述第一文件标识确定预设目录;其中,所述预设目录用于存储所述目标文件,并为所述目标文件提供下载路径;
80.发送所述目标文件至所述预设目录中。
81.图4示出了一个实施例中计算机设备的内部结构图。该计算机设备具体可以是图1中的服务器120。如图4所示,该计算机设备包括该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、输入装置和显示屏。其中,存储器包括非易失性存储介质和内存储
器。该计算机设备的非易失性存储介质存储有操作系统,还可存储有计算机程序,该计算机程序被处理器执行时,可使得处理器实现文件检测方法。该内存储器中也可储存有计算机程序,该计算机程序被处理器执行时,可使得处理器执行文件检测方法。本领域技术人员可以理解,图4中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
82.在一个实施例中,本技术提供的文件检测装置可以实现为一种计算机程序的形式,计算机程序可在如图4所示的计算机设备上运行。计算机设备的存储器中可存储组成该文件检测装置的各个程序模块,比如,图3所示的解析模块310、跟踪模块320和发送模块330。各个程序模块构成的计算机程序使得处理器执行本说明书中描述的本技术各个实施例的文件检测方法中的步骤。
83.图4所示的计算机设备可以通过如图3所示的文件检测装置中的解析模块310执行在接收到用户请求时,解析所述用户请求得到对应的第一文件标识;其中,所述用户请求用于请求上传目标文件或下载目标文件。计算机设备可通过跟踪模块320执行在响应所述用户请求的过程中,跟踪与所述第一文件标识相关的数据流,得到跟踪日志。计算机设备可通过发送模块330执行在所述第一文件标识与所述跟踪日志中的第二文件标识相匹配时,发送所述目标文件至所述用户请求对应的指定目录;其中,所述第二文件标识为所述跟踪日志中记录时刻最晚的文件标识。
84.在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述任一项实施例所述的方法。
85.在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述任一项实施例所述的方法。
86.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指示相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双倍速率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。
87.需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除
在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
88.以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1