一种基于JSON解析的数据脱敏系统及方法
文献发布时间:2023-06-19 11:26:00
技术领域
本发明涉及数据处理领域,具体而言,涉及一种基于JSON解析的数据脱敏系统及方法。
背景技术
随着大数据应用在信息时代的普及,其中蕴藏的巨大商业价值被逐步挖掘出来,大数据平台通过将所有数据整合起来,充分分析与挖掘数据的内在价值,为决策者提供数据统计,分析、数据产品与数据服务。
大数据平台接入数据中可能包括很多用户的隐私和敏感信息,如用户手机号码,地址等,这些数据存在可能泄漏的风险。大数据平台一般通过用户认证,权限管理以及数据加密等技术保证数据的安全,但是这并不能完全从技术上保证数据的安全。另一方面,没有访问用户数据权限的人员,也可能有对该数据进行分析挖掘的需求,数据的访问约束大大限制的充分挖掘数据价值的范围。实际生产过程中,应用场景会更加复杂,仅靠对数据访问权限的控制,满足不了实际需要,还需要结合其它的脱敏手段。现有的脱敏方法无法满足各种复杂结构的JSON数据使用。
发明内容
本发明的目的在于提供一种基于JSON解析的数据脱敏系统,其能够支持多种复杂结构的JSON数据使用。
本发明的另一目的在于提供一种基于JSON解析的数据脱敏方法,其能够支持多种复杂结构的JSON数据使用。
本发明的实施例是这样实现的:
第一方面,本申请实施例提供一种基于JSON解析的数据脱敏系统,包括:
JSON路径扫描模块:用于分别解析多个文档的JSON路径;
列式转换模块:用于根据所述JSON路径遍历文档数据,并将JSON路径相同的值合并到一个列表,得到列式存储中间数据;
敏感扫描模块:用于对所述JSON路径和所述JSON路径对应的值分别做敏感扫描,得到敏感JSON路径列表;
数据脱敏模块:用于根据所述敏感JSON路径对所有文档数据进行遍历脱敏。
在本发明的一些实施例中,上述JSON路径扫描模块抽取一个集合中的多个文档。
在本发明的一些实施例中,上述JSON路径包括数组节点和子节点。
在本发明的一些实施例中,上述JSON路径和所述JSON路径的值均包括空值。
在本发明的一些实施例中,上述敏感扫描模块用于在敏感扫描后判断所述JSON路径的值的末级名称、父级结构和敏感类型是否均相同时,将末级名称、父级结构和敏感类型均相同的多个所述JSON路径的值进行合并处理。
在本发明的一些实施例中,上述敏感扫描模块用于将末级名称、父级结构和敏感类型均相同的多个所述JSON路径的值合并为末级名称、父级结构和敏感类型。
在本发明的一些实施例中,上述数据脱敏模块用于在解析所述JSON路径和所述JSON路径的值,当所述JSON路径和敏感JSON路径匹配则对值进行脱敏处理。
第二方面,本申请实施例提供一种基于JSON解析的MongoDB脱敏方法,包括如下步骤:
JSON路径扫描:抽取一个集合中的多个文档,解析每个文档中的JSON路径,并将结果合并;
列式转换:根据所述JSON路径再次遍历文档数据,将所述JSON路径相同的值合并到一个列表,得到列式存储中间数据;
敏感扫描:对所述JSON路径和所述JSON路径对应的值分别做敏感扫描,得到敏感的JSON路径列表;
数据脱敏:根据敏感JSON路径对所有文档数据进行遍历脱敏。
在本发明的一些实施例中,上述敏感扫描包括:在敏感扫描后判断所述JSON路径的值的末级名称、父级结构和敏感类型是否均相同时,将末级名称、父级结构和敏感类型均相同的多个所述JSON路径的值进行合并处理。
在本发明的一些实施例中,上述数据脱敏包括:解析所述JSON路径和所述JSON路径的值,当所述JSON路径和敏感JSON路径匹配则对值进行脱敏处理。
相对于现有技术,本发明的实施例至少具有如下优点或有益效果:
第一方面,本申请实施例提供一种基于JSON解析的数据脱敏系统,包括:JSON路径扫描模块:用于分别解析多个文档的JSON路径;列式转换模块:用于根据所述JSON路径遍历文档数据,并将JSON路径相同的值合并到一个列表,得到列式存储中间数据;通过敏感扫描模块:用于对所述JSON路径和所述JSON路径对应的值分别做敏感扫描,得到敏感JSON路径列表;数据脱敏模块:用于根据所述敏感JSON路径对所有文档数据进行遍历脱敏。
针对第一方面:本申请实施例提供一种基于JSON解析的数据脱敏系统,通过JSON路径扫描模块解析多个文档的JSON路径,从而对多个文档的JSON数据进行统一管理;通过列式转换模块根据JSON路径遍历文档数据,进而将JSON路径相同的值合并到一个列表,得到列式存储中间数据,通过列式数据实现了文档数据的分类存储;通过敏感扫描模块对JSON路径和JSON路径对应的值分别做敏感扫描,从而遍历每个路径以及路径下的值数据,得到JSON路径和JSON路径值中的敏感信息;数据脱敏模块根据敏感JSON路径对所有文档数据进行遍历脱敏,防止敏感信息被泄露。本发明通过列式转换将JSON路径相同的值合并到一个列表,并且对JSON路径和JSON路径的值进行敏感扫描后存储,能够将具有数组或对象的JSON数据进行合并保护,满足了复杂结构的JSON数据使用,并且提高了数据信息的安全性。
第二方面,本申请实施例提供一种基于JSON解析的MongoDB脱敏方法,包括如下步骤:JSON路径扫描:抽取一个集合中的多个文档,解析每个文档中的JSON路径,并将结果合并;列式转换:根据所述JSON路径再次遍历文档数据,将所述JSON路径相同的值合并到一个列表,得到列式存储中间数据;敏感扫描:对所述JSON路径和所述JSON路径对应的值分别做敏感扫描,得到敏感的JSON路径列表;数据脱敏:根据敏感JSON路径对所有文档数据进行遍历脱敏。
针对第二方面:与第一方面原理及有益效果相同,在此不必重复描述。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本发明实施例一种基于JSON解析的数据脱敏方法的流程示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
在本申请的描述中,需要说明的是,术语“上”、“下”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,或者是该申请产品使用时惯常摆放的方位或位置关系,仅是为了便于描述本申请和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本申请的限制。
在本申请的描述中,还需要说明的是,除非另有明确的规定和限定,术语“设置”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本申请中的具体含义。
下面结合附图,对本申请的一些实施方式作详细说明。在不冲突的情况下,下述的各个实施例及实施例中的各个特征可以相互组合。
实施例1
本申请实施例提供的一种基于JSON解析的数据脱敏系统,基本流程如图1一种基于JSON解析的数据脱敏方法的流程示意图所示。
本申请实施例提供一种基于JSON解析的数据脱敏系统,包括:JSON路径扫描模块:用于分别解析多个文档的JSON路径;列式转换模块:用于根据所述JSON路径遍历文档数据,并将JSON路径相同的值合并到一个列表,得到列式存储中间数据;敏感扫描模块:用于对所述JSON路径和所述JSON路径对应的值分别做敏感扫描,得到敏感JSON路径列表;数据脱敏模块:用于根据所述敏感JSON路径对所有文档数据进行遍历脱敏。
详细的,JSON路径扫描模块获取多个文档的JSON路径的后可以将结果进行合并,便于列式转换模块遍历文档数据时进行查找和统计。其中,合并方式可以依据路径的从属关系进行选择。详细的,列式存储中间数据利用JSON路径的相同值进行分类,从而便于多数组或对象的JSON数据进行嵌套设置,将不同类型复杂结构的JSON数据以任意层次进行统一管理,便于对不同路径的相似JSON数据进行敏感扫描,从而保留修改历史,便于追溯有效的源数据。详细的,敏感扫描模块通过列式转换得到的列表对JSON路径和JSON路径对应的值分别进行敏感扫描,得到扫描结果。从而敏感扫描模块同时查找路径以及路径的值中的敏感信息,并通过敏感JSON路径列表进行存储,从而对敏感信息的路径位置或路径值进行标记。详细的,数据脱敏模块根据敏感JSON路径对所有文档数据进行脱敏处理,从而将敏感信息隐藏。
在本发明的一些实施例中,上述JSON路径扫描模块抽取一个集合中的多个文档。
在本发明的一些实施例中,上述JSON路径包括数组节点和子节点。
详细的,以一个JSON数据为例:
详细的,对上述JSON数据进行路径扫描得到如下结果:
其中,路径格式与JSONPath兼容。[]代表此节点为数组节点。[*]代表数组节点下的所有子节点。通过上述路径格式便于列式转换模块将JSON路径相同的值进行合并得到列式存储中间数据。
在本发明的一些实施例中,上述JSON路径和所述JSON路径的值均包括空值。
详细的,列式转换模块遍历JSON数据,将路径相同的值合并到一个列表,从而通过列式存储中间数据,即:
其中,张三对应的phone节点为空,可以将路径对应值也设为空。设置空值的好处是能保留列式数据间的位置对应关系。在需要做关联扫描时,需要此功能。
在本发明的一些实施例中,上述敏感扫描模块用于在敏感扫描后判断所述JSON路径的值的末级名称、父级结构和敏感类型是否均相同时,将末级名称、父级结构和敏感类型均相同的多个所述JSON路径的值进行合并处理。
详细的,得到列式数据后,敏感扫描模块首先遍历每个路径下的值数据,进行敏感扫描,得到扫描结果。并且,由于个别场景下敏感信息会出现在路径而不是值中,此时需要对路径也进行敏感扫描。如果book1,book2为敏感数据,则路径扫描结果为books[*].#key。其中#key表示此节点下的key值,而不是对象本身,其中key值可以是引用的关键字或加入的标记。
在本发明的一些实施例中,上述敏感扫描模块用于将末级名称、父级结构和敏感类型均相同的多个所述JSON路径的值合并为末级名称、父级结构和敏感类型。
其中,如果扫描结果中路径值的末级名称相同,父级的结构相同,并且扫描的敏感类型也相同,则可对结果做合并处理。比如,如books[*].book1.authors[*].phone和books[*].book2.authors[*].phone的末级都为phone,父级结构相同,扫描结果都为电话类型。所以可将结果合并为books[*].*.authors[*].phone。
在本发明的一些实施例中,上述数据脱敏模块用于在解析所述JSON路径和所述JSON路径的值,当所述JSON路径和敏感JSON路径匹配则对值进行脱敏处理。
根据敏感JSON路径对集合下的所有文档进行脱敏,脱敏时会解析每个JSON数据。如果路径和敏感路径匹配则对值进行相应的脱敏处理,比如对电话做遮蔽脱敏,脱敏后效果如下:
实施例2
请参阅图1,本申请实施例提供一种基于JSON解析的MongoDB脱敏方法,包括如下步骤:JSON路径扫描:抽取一个集合中的多个文档,解析每个文档中的JSON路径,并将结果合并;列式转换:根据所述JSON路径再次遍历文档数据,将所述JSON路径相同的值合并到一个列表,得到列式存储中间数据;敏感扫描:对所述JSON路径和所述JSON路径对应的值分别做敏感扫描,得到敏感的JSON路径列表;数据脱敏:根据敏感JSON路径对所有文档数据进行遍历脱敏。
在本发明的一些实施例中,上述敏感扫描包括:在敏感扫描后判断所述JSON路径的值的末级名称、父级结构和敏感类型是否均相同时,将末级名称、父级结构和敏感类型均相同的多个所述JSON路径的值进行合并处理。
在本发明的一些实施例中,上述数据脱敏包括:解析所述JSON路径和所述JSON路径的值,当所述JSON路径和敏感JSON路径匹配则对值进行脱敏处理。
详细的,上述方法与实施例1的工作原理及有益效果相同,在此不必重复描述。
在本申请所提供的实施例中,应该理解到,所揭露的系统和方法,也可以通过其它的方式实现。以上所描述的系统实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
综上所述,本申请实施例提供的一种基于JSON解析的数据脱敏系统及方法:
本申请实施例通过JSON路径扫描模块解析多个文档的JSON路径,从而对多个文档的JSON数据进行统一管理;通过列式转换模块根据JSON路径遍历文档数据,进而将JSON路径相同的值合并到一个列表,得到列式存储中间数据,通过列式数据实现了文档数据的分类存储;通过敏感扫描模块对JSON路径和JSON路径对应的值分别做敏感扫描,从而遍历每个路径以及路径下的值数据,得到JSON路径和JSON路径值中的敏感信息;数据脱敏模块根据敏感JSON路径对所有文档数据进行遍历脱敏,防止敏感信息被泄露。本发明通过列式转换将JSON路径相同的值合并到一个列表,并且对JSON路径和JSON路径的值进行敏感扫描后存储,能够将具有数组或对象的JSON数据进行合并保护,满足了复杂结构的JSON数据使用,并且提高了数据信息的安全性。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
对于本领域技术人员而言,显然本申请不限于上述示范性实施例的细节,而且在不背离本申请的精神或基本特征的情况下,能够以其它的具体形式实现本申请。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本申请的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本申请内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。
- 一种基于JSON解析的数据脱敏系统及方法
- 一种基于树状结构的数据脱敏处理方法和系统