本申请涉及计算机技术领域,更具体地说,涉及一种嵌套文档提取方法、装置及一种电子设备和一种计算机可读存储介质。
背景技术:
嵌套文档,即office系列文档以及rtf等办公文档中通过插入附件对象的形式添加的文档。dlp(dataleakageprevention,数据泄密防护)是指防止泄露的系统。当前泄密dlp产品中普遍存在提取文档内容的需求,而大多数dlp产品针对文档的提取仅支持当前文档内容的提取,而不支持嵌套文档,甚至多层嵌套文档内容的提取,由此,可能会导致若用户通过将机密信息文件嵌入到文档中,泄密系统无法分析到机密信息文件而导致机密信息外泄的情况。因此,如何解决上述问题是本领域技术人员需要重点关注的。
技术实现要素:
本申请的目的在于提供一种嵌套文档提取方法、装置及一种电子设备和一种计算机可读存储介质,能够实现嵌套文档的提取,从而有效避免信息泄露。
为实现上述目的,本申请提供了一种嵌套文档提取方法,包括:
获取待提取的目标文档,并读取所述目标文档对应的文档目录;
从所述文档目录中提取所述目标文档中嵌套的所有子文档;
分别对各个子文档的文档内容进行识别,以识别所述子文档中是否存在机密信息。
可选的,所述获取待提取的目标文档之后,还包括:
确定所述目标文档对应的文档类型;
所述读取所述目标文档对应的文档目录,包括:
根据所述文档类型读取所述目标文档对应的文档目录。
可选的,所述根据所述文档类型读取所述目标文档对应的文档目录,包括:
若所述文档类型为第一类版本格式的文档类型,则读取所述目标文档对应的复合文档目录;所述第一类版本格式包括doc格式、xls格式、ppt格式的任意一种;
若所述文档类型为第二类版本格式的文档类型,则对所述目标文档进行解压,并在解压后读取所述目标文档对应的多级文档目录;所述第二类版本格式包括docx格式、xlsx格式、pptx格式的任意一种。
可选的,从所述文档目录中提取所述目标文档中嵌套的所有子文档,包括:
通过读取所述复合文档目录下预设文件的所有文件夹,提取所述目标文档中嵌套的所有子文档。
可选的,从所述文档目录中提取所述目标文档中嵌套的所有子文档,包括:
读取所述目标文档对应的多级文档目录下的预设子目录;
提取所述预设子目录中存放的所有子文档。
可选的,所述分别对各个子文档的文档内容进行识别之前,还包括:
判断所述子文档是否为单一文档或嵌套文档;
若所述子文档为嵌套文档,则将所述子文档作为所述目标文档,并进入从所述文档目录中提取所述目标文档中嵌套的所有子文档的步骤进行迭代提取。
可选的,所述分别对各个子文档的文档内容进行识别,包括:
若所述子文档为单一文档,则根据所述子文档对应的文档格式直接对所述子文档进行内容提取和识别。
为实现上述目的,本申请提供了一种嵌套文档提取装置,包括:
目录读取模块,用于获取待提取的目标文档,并读取所述目标文档对应的文档目录;
文档提取模块,用于从所述文档目录中提取所述目标文档中嵌套的所有子文档;
内容识别模块,用于分别对各个子文档的文档内容进行识别,以识别所述子文档中是否存在机密信息。
为实现上述目的,本申请提供了一种电子设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现前述公开的任一种嵌套文档提取方法的步骤。
为实现上述目的,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现前述公开的任一种嵌套文档提取方法的步骤。
通过以上方案可知,本申请提供的一种嵌套文档提取方法,包括:获取待提取的目标文档,并读取所述目标文档对应的文档目录;从所述文档目录中提取所述目标文档中嵌套的所有子文档;分别对各个子文档的文档内容进行识别,以识别所述子文档中是否存在机密信息。由上可知,本申请能够基于待提取目标文档的文档目录,提取出其中嵌套的所有子文档,实现嵌套文档的提取,进而对子文档的内容进行识别,确定子文档中是否存在机密信息,能够有效避免信息泄露。
本申请还公开了一种嵌套文档提取装置及一种电子设备和一种计算机可读存储介质,同样能实现上述技术效果。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本申请。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例公开的一种具体实施下嵌套文档提取系统的组成架构图;
图2为本申请实施例公开的一种嵌套文档提取方法的流程图;
图3为本申请实施例公开的另一种嵌套文档提取方法的流程图;
图4、图5、图6分别为本申请实施例公开的另一种嵌套文档提取方法中针对不同版本文档的目录示意图;
图7为本申请实施例公开的又一种嵌套文档提取方法的流程图;
图8、图9、图10分别为本申请实施例公开的又一种嵌套文档提取方法中针对不同版本文档的目录示意图;
图11为本申请实施例公开的一种嵌套文档提取装置的结构图;
图12为本申请实施例公开的一种电子设备的结构图;
图13为本申请实施例公开的另一种电子设备的结构图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在现有技术中,当前泄密dlp产品中普遍存在提取文档内容的需求,而大多数dlp产品针对文档的提取仅支持当前文档内容的提取,而不支持嵌套文档,甚至多层嵌套文档内容的提取,由此,可能会导致若用户通过将机密信息文件嵌入到文档中,泄密系统无法分析到机密信息文件而导致机密信息外泄的情况。
因此,本申请实施例公开了一种嵌套文档提取方法,能够实现嵌套文档的提取,从而有效避免信息泄露。
为了便于理解,下面对本申请的技术方案所适用的系统架构进行介绍。参见图1,其分别示出了本申请的一种嵌套文档提取系统的组成架构。如图1所示,本申请的嵌套文档提取系统可以具体包括用户终端11和服务器12,用户终端11和服务器12之间通过网络13进行通信连接。上述用户终端11和服务器12中均可以进一步包含有处理器、存储器、通信接口、输入单元、显示器以及通信总线等元件,且处理器、存储器、通信接口、输入单元、显示器、均通过通信总线完成相互间的通信。
在具体实施中,用户可以通过用户终端11进行文件的传输,例如可上传文件到服务器12,或通过服务器12传输文件至其他通信终端。具体地,用户终端11具体可以包括但不限于智能手机、平板电脑、穿戴式设备和台式计算机等数据处理设备。
可以理解的是,服务器12具体用于在获取到用户传输的文件之后,对其进行文档内容的识别,若文件为嵌套文档,则进行嵌套文档的提取,以识别传输的文件中是否存在机密信息,并在存在机密信息的时候发送风险提示,以避免信息的泄露。上述服务器12可以包括但不限于云服务器、物理服务器和虚拟服务器等。
需要指出的是,本申请中的网络13可以根据实际应用过程中的网络状况和应用需求来确定,既可以是无线通讯网络,如移动通讯网络或wifi网络等,也可以是有线通讯网络;既可以是广域网,在情况允许时也可以采用局域网。
参见图2所示,本申请实施例公开的一种嵌套文档提取方法包括:
s101:获取待提取的目标文档,并读取所述目标文档对应的文档目录;
本申请实施例中,可以通过导入接口获取待提取的目标文档,并读取目标文档对应的文档目录。
作为一种可行的实施方式,本申请实施例在获取待提取的目标文档之后,还可以进一步确定目标文档对应的文档类型,以便根据文档类型读取目标文档对应的文档目录。
s102:从所述文档目录中提取所述目标文档中嵌套的所有子文档;
本步骤中,可以基于文档目录确定目标文档内所嵌套的子文档,并从文档目录中提取出所有子文档。
s103:分别对各个子文档的文档内容进行识别,以识别所述子文档中是否存在机密信息。
在具体实施中,当提取出所有子文档之后,可以分别对各个子文档的文档内容进行识别,从而判断子文档内是否存在机密信息。若存在机密信息,可返回相应的风险提示信息,以避免信息泄露。
需要说明的是,上述机密信息可以具体包括但不限于财务数据、客户资料信息、技术数据、源代码、办公信件数据、商业方案等敏感信息。判断文档内是否存在机密信息时,可以具体采用正则表达式、关键字等基础检测方法进行内容搜索和匹配,采用基础检测方法能够对明确的敏感信息内容进行检测。另外,还可采用精准数据比对检测方法、指纹文档比对检测方法以及向量分类比对检测方法等,以进一步提高检测准确率。其中,精准数据比对检测方法用于比对检测结构化数据,例如用户的名字、身份证号、银行账号等;指纹文档比对检测方法用于检测非结构化数据,例如办公信件数据、商业方案等;向量分类比对检测方法适用于检测具备独特特征的数据,例如财务数据、源代码等。
可以理解的是,在分别对各个子文档的文档内容进行识别之前,可以首先判断子文档是否为单一文档或者嵌套文档。若子文档为单一文档,则可以根据子文档对应的文档格式直接对所述子文档进行内容提取和识别;若子文档为嵌套文档,则将子文档作为新的目标文档,并对当前的目标文档进行提取,即再次进入从文档目录中提取目标文档中嵌套的所有子文档的步骤进行迭代提取。
通过以上方案可知,本申请提供的一种嵌套文档提取方法,包括:获取待提取的目标文档,并读取所述目标文档对应的文档目录;从所述文档目录中提取所述目标文档中嵌套的所有子文档;分别对各个子文档的文档内容进行识别,以识别所述子文档中是否存在机密信息。由上可知,本申请能够基于待提取目标文档的文档目录,提取出其中嵌套的所有子文档,实现嵌套文档的提取,进而对子文档的内容进行识别,确定子文档中是否存在机密信息,能够有效避免信息泄露。
本申请实施例公开了另一种嵌套文档提取方法,相对于上一实施例,本实施例对技术方案作了进一步的说明和优化。参见图3所示,具体的:
s201:获取待提取的目标文档,并确定所述目标文档对应的文档类型;
s202:若所述文档类型为第一类版本格式的文档类型,则读取所述目标文档对应的复合文档目录;所述第一类版本格式包括doc格式、xls格式、ppt格式的任意一种;
本申请实施例中,获取到待提取的目标文档之后,将首先确定目标文档对应的文档类型。若文档类型为第一类版本格式的文档类型,即office2003版本的文档,则读取目标文档对应的复合文档目录。其中,第一类版本格式可以包括但不限于doc格式、xls格式、ppt格式。
需要说明的是,office2003版本的文档以复合文档格式进行存储。复合文档是一种不仅包含文本,而且包括图形、电子表格数据、声音、视频图形以及其他信息的文档。复合文档将数据分成许多流,这些流存储在不同的仓库中,所有的流又分为更小的数据块,称为扇区,整个文件由一个文件头结构以及其后的所有扇区组成,扇区的大小在头结构中指定,且所有的扇区大小一致。目录是一个内部控制流,由一系列目录入口组成,每一个目录入口都指向复合文档的仓库或流,目录入口以其在目录流中出现的顺序被列举。而office2003中嵌套文档中也具体以一个目录入口的形式存在。
s203:通过读取所述复合文档目录下预设文件的所有文件夹,提取所述目标文档中嵌套的所有子文档;
本步骤中,可以读取复合文档目录下预设文件的所有文件夹,以提取出各文件夹下存放的所有子文档。
具体地,如图4所示,doc格式的word嵌套文件在解压后的objectpool文件下的每个以下划线加10个数字命名的文件夹中,每个文件夹中存放一个嵌套的子文档,如嵌入docx,xlsx,pptx格式的子文档,每个子文档存放到以ole格式存储的package文件中。另外,还需对提取到的除文件夹之外的数据多余内容进行再次处理。如图5所示,xls格式的excel嵌套文件在解压后的mbd加8个十六进制数命名的文件夹中,每个文件中存放一个嵌套的子文档。如图6所示,ppt格式的嵌套文件存放在powerpointdocument文件中,通过查找rectype值可以提取嵌套文件,嵌套文件在rt_externaloleobjectstg的rectype中。
s204:分别对各个子文档的文档内容进行识别,以识别所述子文档中是否存在机密信息。
可以理解的是,对各个子文档进行识别时,若子文档为单一的文档,则可根据具体的文档格式进行提取。例如,若目录入口对象名称为worddocument,则进行doc文档格式的提取;若目录入口对象名称为workbook,则进行xls文档格式的提取;若目录入口对象名称为powerpointdocument,则进行ppt文档格式的提取。在文档提取时,目录入口结构中指定的start与length分别指示文档的具体内容。
本申请实施例公开了又一种嵌套文档提取方法,相对于上一实施例,本实施例对技术方案作了进一步的说明和优化。参见图7所示,具体的:
s301:获取待提取的目标文档,并确定所述目标文档对应的文档类型;
s302:若所述文档类型为第二类版本格式的文档类型,则对所述目标文档进行解压,并在解压后读取所述目标文档对应的多级文档目录;所述第二类版本格式包括docx格式、xlsx格式、pptx格式的任意一种;
本申请实施例中,获取到待提取的目标文档之后,将首先确定目标文档对应的文档类型。若文档类型为第二类版本格式的文档类型,即office2007版本的文档,则对目标文档进行解压,并在解压后读取目标文档对应的多级文档目录。其中,第二类版本格式可以包括但不限于docx格式、xlsx格式、pptx格式。
s303:读取所述目标文档对应的多级文档目录下的预设子目录;
s304:提取所述预设子目录中存放的所有子文档;
需要说明的是,在获取到目标文档对应的多级文档目录之后,可读取预设子目录,并提取预设子目录中存放的所有子文档。
在具体实施中,如图8所示,docx文档格式使用压缩包进行存放,文档在解压之后可以看到嵌套文档存放在word目录下的embeddings目录下,例如左边的docx文档中存在两个嵌套文档,则对应的embeddings存在两个嵌套文档oleobject1.bin与oleobject2.bin文档。xlsx嵌套文档格式使用压缩包进行存放,文档在解压之后可以看到嵌套文档存放在xl目录下的embeddings目录下,如图9所示,左边的文档中存在两个嵌套文档,则对应的embeddings存在两个嵌套文档oleobject1.bin与oleobject2.bin文件。如图10所示,pptx嵌套文档的提取可参照上述内容。
s305:分别对各个子文档的文档内容进行识别,以识别所述子文档中是否存在机密信息。
可以理解的是,由于office2007系列文档使用zip压缩格式进行存储,因此可以对zip压缩包进行循环解压以读取嵌套对象。具体地,若解压后存在word/document.xml文件,则进行docx文档内容的提取;若解压后存在xl/sharedstring.xml文件,则进行xlsx文档的内容提取;若解压后存在ppt/slides/slidex.xml文件,则进行pptx文档的内容提取;若解压后为其他文件,则将该文件作为待提取的目标文档,并返回步骤s301,进行文件类型识别流程。
下面对本申请实施例提供的一种嵌套文档提取装置进行介绍,下文描述的一种嵌套文档提取装置与上文描述的一种嵌套文档提取方法可以相互参照。
参见图11所示,本申请实施例提供的一种嵌套文档提取装置包括:
目录读取模块401,用于获取待提取的目标文档,并读取所述目标文档对应的文档目录;
文档提取模块402,用于从所述文档目录中提取所述目标文档中嵌套的所有子文档;
内容识别模块403,用于分别对各个子文档的文档内容进行识别,以识别所述子文档中是否存在机密信息。
关于上述模块401至403的具体实施过程可参考前述实施例公开的相应内容,在此不再进行赘述。
本申请还提供了一种电子设备,参见图12所示,本申请实施例提供的一种电子设备包括:
存储器100,用于存储计算机程序;
处理器200,用于执行所述计算机程序时可以实现上述实施例所提供的步骤。
具体的,存储器100包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机可读指令,该内存储器为非易失性存储介质中的操作系统和计算机可读指令的运行提供环境。处理器200在一些实施例中可以是一中央处理器(centralprocessingunit,cpu)、控制器、微控制器、微处理器或其他数据处理芯片,为电子设备提供计算和控制能力,执行所述存储器100中保存的计算机程序时,可以实现前述任一实施例公开的嵌套文档提取方法的步骤。
在上述实施例的基础上,作为优选实施方式,参见图13所示,所述电子设备还包括:
输入接口300,与处理器200相连,用于获取外部导入的计算机程序、参数和指令,经处理器200控制保存至存储器100中。该输入接口300可以与输入装置相连,接收用户手动输入的参数或指令。该输入装置可以是显示屏上覆盖的触摸层,也可以是终端外壳上设置的按键、轨迹球或触控板,也可以是键盘、触控板或鼠标等。
显示单元400,与处理器200相连,用于显示处理器200处理的数据以及用于显示可视化的用户界面。该显示单元400可以为led显示器、液晶显示器、触控式液晶显示器以及oled(organiclight-emittingdiode,有机发光二极管)触摸器等。
网络端口500,与处理器200相连,用于与外部各终端设备进行通信连接。该通信连接所采用的通信技术可以为有线通信技术或无线通信技术,如移动高清链接技术(mhl)、通用串行总线(usb)、高清多媒体接口(hdmi)、无线保真技术(wifi)、蓝牙通信技术、低功耗蓝牙通信技术、基于ieee802.11s的通信技术等。
图13仅示出了具有组件100-500的电子设备,本领域技术人员可以理解的是,图13示出的结构并不构成对电子设备的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。
本申请还提供了一种计算机可读存储介质,该存储介质可以包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。该存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现前述任一实施例公开的嵌套文档提取方法的步骤。
本申请能够基于待提取目标文档的文档目录,提取出其中嵌套的所有子文档,实现嵌套文档的提取,进而对子文档的内容进行识别,确定子文档中是否存在机密信息,能够有效避免信息泄露。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。