CN112765658A - 一种数据脱敏方法、装置及电子设备和存储介质 - Google Patents

一种数据脱敏方法、装置及电子设备和存储介质 Download PDF

Info

Publication number
CN112765658A
CN112765658A CN202110056293.5A CN202110056293A CN112765658A CN 112765658 A CN112765658 A CN 112765658A CN 202110056293 A CN202110056293 A CN 202110056293A CN 112765658 A CN112765658 A CN 112765658A
Authority
CN
China
Prior art keywords
field
target
executed
statement
sql
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.)
Pending
Application number
CN202110056293.5A
Other languages
English (en)
Inventor
严龙鹏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Dt Dream Technology Co Ltd
Original Assignee
Hangzhou Dt Dream Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hangzhou Dt Dream Technology Co Ltd filed Critical Hangzhou Dt Dream Technology Co Ltd
Priority to CN202110056293.5A priority Critical patent/CN112765658A/zh
Publication of CN112765658A publication Critical patent/CN112765658A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • G06F21/6254Protecting personal data, e.g. for financial or medical purposes by anonymising data, e.g. decorrelating personal data from the owner's identification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • G06F16/2433Query languages
    • G06F16/2445Data retrieval commands; View definitions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Medical Informatics (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请公开了一种数据脱敏方法、装置及一种电子设备和计算机可读存储介质,该方法包括:获取待执行SQL语句,对所述待执行SQL语句进行解析,以确定所述待执行SQL语句中查询部分的目标字段;若所述目标字段包含敏感字符,则基于所述目标字段的字段类型对所述敏感字符进行脱敏操作,以生成目标SQL语句;其中,所述字段类型包括字符类型和函数类型;将所述目标SQL语句发送至引擎处理。本申请提供的数据脱敏方法,可以在待执行SQL语句执行前对包括函数类型的原始数据进行脱敏,有效防止攻击者通过特殊函数绕过脱敏策略,有效遏制攻击者窃取数据的企图,从而实现对敏感数据进行有效保护。

Description

一种数据脱敏方法、装置及电子设备和存储介质
技术领域
本申请涉及数据安全技术领域,更具体地说,涉及一种数据脱敏方法、装置及一种电子设备和一种计算机可读存储介质。
背景技术
大数据时代,随着各类大数据技术的跨越式发展,数据在其生命周期内在多个安全域中不断流转、使用,持续不断地为客户创造价值。但是,大数据的发展也带来了更大的数据安全风险。数据的汇集、数据关联分析等也给数据安全提出了更大的安全挑战。因此,数据脱敏必然作为数据保护技术的一个必要手段。
数据脱敏,是一种针对敏感数据通过对应的脱敏策略进行数据的变形,从而实现对敏感数据进行有效保护的一种方法。在一种相关技术中,采用在最外层编辑SQL(中文全称:结构化查询语言,英文全称:Structured Query Language)语句的方式织入脱敏逻辑。但是,由于对SQL语句进行处置时,只处理了外层输出字段,忽略了对内层逻辑的处理。攻击者可以通过在内层织入字符串处置等函数,从而绕过对应的脱敏保护策略。
因此,如何防止通过特殊函数绕过脱敏策略是本领域技术人员需要解决的技术问题。
发明内容
本申请的目的在于提供一种数据脱敏方法、装置及一种电子设备和一种计算机可读存储介质,防止通过特殊函数绕过脱敏策略。
为实现上述目的,本申请提供了一种数据脱敏方法,包括:
获取待执行SQL语句,对所述待执行SQL语句进行解析,以确定所述待执行SQL语句中查询部分的目标字段;
若所述目标字段包含敏感字符,则基于所述目标字段的字段类型对所述敏感字符进行脱敏操作,以生成目标SQL语句;其中,所述字段类型包括字符类型和函数类型;
将所述目标SQL语句发送至引擎处理。
其中,对所述待执行SQL语句进行解析,以确定所述待执行SQL语句中查询部分的目标字段,包括:
对所述待执行SQL语句进行解析,以生成所述待执行SQL语句对应的 AST语法树;
在所述AST语法树中确定查询部分的目标字段。
其中,在所述AST语法树中确定查询部分的目标字段,包括:
基于所述AST语法树构建所述待执行SQL语句中查询部分对应的字段信息列表;
遍历所述字段信息列表,将所述字段信息列表中的每个字段节点作为目标字段节点执行节点筛选过程;
其中,所述节点筛选过程包括:根据所述目标字段节点的字段信息和对应的FROM节点信息判断所述目标字段节点是否来源于目标查询从句;若是,则将所述目标查询从句中的每个字段节点作为所述目标字段节点重新执行所述节点筛选过程;若否,则将所述目标字段节点对应的字段确定为所述目标字段。
其中,所述基于所述AST语法树构建所述待执行SQL语句中查询部分对应的字段信息列表,包括:
基于所述AST语法树判断所述待执行SQL语句是否为查询语句;
若是,则将所述待执行SQL语句作为目标语句执行语句筛选过程;
若否,则判断所述待执行SQL语句是否包含第一查询从句;若包含,则将所述第一查询语句作为所述目标语句执行所述语句筛选过程;
其中,所述语句筛选过程包括:将所述目标语句对应的字段信息加入字段信息列表中,并判断所述目标语句对应的FROM节点是否为第二查询从句;若是,则将所述第二查询语句作为所述目标语句重新执行所述语句筛选过程;若否,则得到构建完成的字段信息列表。
其中,所述基于所述目标字段的字段类型对所述敏感字符进行脱敏操作,以生成目标SQL语句,包括:
基于所述目标字段的字段类型确定所述目标字段对应的脱敏字段;
将所述AST语法树中所述目标字段所在的节点更新为所述脱敏字段;
根据更新后的AST语法树生成目标SQL语句。
其中,所述基于所述目标字段的字段类型对所述敏感字符进行脱敏操作,包括:
若所述目标字段的字段类型为所述函数类型,则判断函数操作白名单是否包含所述目标字段对应的目标函数操作;
若否,则对所述敏感字符进行脱敏操作。
其中,所述基于所述目标字段的字段类型对所述敏感字符进行脱敏操作,包括:
若所述目标字段的字段类型为所述函数类型,则判断函数操作黑名单是否包含所述目标字段对应的目标函数操作;
若是,则对所述敏感字符进行脱敏操作。
为实现上述目的,本申请提供了一种数据脱敏装置,包括:
确定模块,用于获取待执行SQL语句,对所述待执行SQL语句进行解析,以确定所述待执行SQL语句中查询部分的目标字段;
脱敏模块,用于若所述目标字段包含敏感字符,则基于所述目标字段的字段类型对所述敏感字符进行脱敏操作,以生成目标SQL语句;其中,所述字段类型包括字符类型和函数类型;
发送模块,用于将所述目标SQL语句发送至引擎处理。
为实现上述目的,本申请提供了一种电子设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上述数据脱敏方法的步骤。
为实现上述目的,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述数据脱敏方法的步骤。
通过以上方案可知,本申请提供的一种数据脱敏方法,包括:获取待执行SQL语句,对所述待执行SQL语句进行解析,以确定所述待执行SQL语句中查询部分的目标字段;若所述目标字段包含敏感字符,则基于所述目标字段的字段类型对所述敏感字符进行脱敏操作,以生成目标SQL语句;其中,所述字段类型包括字符类型和函数类型;将所述目标SQL语句发送至引擎处理。
本申请提供的数据脱敏方法,通过对待执行SQL语句进行解析获取其中查询部分的目标字段,包括字符类型的字段和函数类型的字段,根据不同的字段类型采用不同的脱敏策略。可见,本申请提供的数据脱敏方法,可以在待执行SQL语句执行前对包括函数类型的原始数据进行脱敏,有效防止攻击者通过特殊函数绕过脱敏策略,有效遏制攻击者窃取数据的企图,从而实现对敏感数据进行有效保护。本申请还公开了一种数据脱敏装置及一种电子设备和一种计算机可读存储介质,同样能实现上述技术效果。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本申请。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:
图1为根据一示例性实施例示出的一种数据脱敏方法的流程图;
图2为根据一示例性实施例示出的另一种数据脱敏方法的流程图;
图3为根据一示例性实施例示出的另一种数据脱敏方法的流程图;
图4为本申请提供的一种应用实施例中第一阶段的流程图;
图5为本申请提供的一种应用实施例中第二阶段的流程图;
图6为根据一示例性实施例示出的一种数据脱敏装置的结构图;
图7为根据一示例性实施例示出的一种电子设备的结构图。
具体实施方式
本申请的申请人经研究发现,相关技术对SQL语句进行处置时,只处理了外层输出字段,忽略了对内层逻辑的处理。攻击者可以通过在内层织入字符串处置等函数,从而绕过对应的脱敏保护策略。
以手机号码的脱敏算法为例,默认手机号码脱敏算法为前3位和后4位不掩盖,其余位置使用*进行掩盖。例如,原数据为13a50273b6c,预期脱敏效果为13a****3b6c。
原SQL语句:select u.username,u.cardId,u.phone,a.address from userInfou left join addressInfo a on u.cardId=a.cardId;
输出:13a50273b6c
脱敏SQL语句:select u.username,u.cardId,udf(u.phone),a.address fromuserInfo u left join addressInfo a on u.cardId=a.cardId;
输出:13a****3b6c
攻击者可以采用以下方式绕过上述脱敏策略:
步骤一:执行脱敏SQL:select u.username,u.cardId,udf(u.phone),a.addressfrom userInfo u left join addressInfo a on u.cardId=a.cardId;
输出:13a****3b6c,可以推导出电话号码前三位为13a,后四位为3b6c。
步骤二:执行绕过SQL1:select u.username,u.cardId,udf(substr(u.phone,3),a.address from userInfo u left join addressInfo a on u.cardId=a.cardId;
输出:502****,可以推导出在步骤一中被脱敏部分的前三位为502。
步骤三:执行绕过SQL2:select u.username,u.cardId,udf(substr(u.phone,6),a.address from userInfo u left join addressInfo a on u.cardId=a.cardId;
输出:7****,可以推导出在步骤一中被脱敏部分的最后一位为7。
步骤四:通过整合上述步骤的输出信息,最终推导出电话号码为 13a50273b6c。
可见,在相关技术中,只考虑输出字段的脱敏,未考虑对输出字段进行特殊函数操作的场景,例如字符串拼接、字符串截取、编解码等函数,攻击者可以通过对敏感字段添加函数操作,从而绕过脱敏策略。
因此,本申请通过对待执行SQL语句进行解析获取其中查询部分的目标字段,包括字符类型的字段和函数类型的字段,根据不同的字段类型采用不同的脱敏策略。可见,本申请提供的数据脱敏方法,可以在待执行SQL语句执行前对包括函数类型的原始数据进行脱敏,有效防止攻击者通过特殊函数绕过脱敏策略。
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。另外,在本申请实施例中,“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
本申请实施例公开了一种数据脱敏方法,防止通过特殊函数绕过脱敏策略。
参见图1,根据一示例性实施例示出的一种数据脱敏方法的流程图,如图1所示,包括:
S101:获取待执行SQL语句,对所述待执行SQL语句进行解析,以确定所述待执行SQL语句中查询部分的目标字段;
本实施例的目的在于对待执行SQL语句进行数据脱敏,执行主体为客户端与引擎之间的电子设备,用户可以在客户端输入待执行SQL语句,数据脱敏后引擎对接收到的SQL语句进行响应。
在本步骤中,可以通过多种途径获取到客户端需要执行的SQL语句,具体方式可以包括协议解析、更换SDK(中文全称:软件开发工具包,英文全称:Software DevelopmentKit)等,在此不进行具体限定。
在具体实施中,获取待执行SQL语句后进行解析,以确定待执行SQL语句中查询部分的字段,即本步骤中的目标字段。此处的目标字段可以包括字符类型的字段,例如T,还可以包括函数类型的字段,例如F(T)。
作为一种可行的实施方式,对所述待执行SQL语句进行解析,以确定所述待执行SQL语句中查询部分的目标字段,包括:对所述待执行SQL语句进行解析,以生成所述待执行SQL语句对应的AST语法树;在所述AST语法树中确定查询部分的目标字段。在具体实施中,对待执行SQL语句进行语法解析,生成AST语法树(中文全称:抽象语法树,英文全称:abstract syntax code) 是源代码的抽象语法结构的树状表示,树上的每个节点都表示源代码中的一种结构。在实际解析过程中可以使用Calcite进行SQL分析。若待执行SQL 语句为查询语句(select)或包含查询从句,则AST语法树中存在select节点,基于AST语法树可以确定查询部分的字段。
S102:若所述目标字段包含敏感字符,则基于所述目标字段的字段类型对所述敏感字符进行脱敏操作,以生成目标SQL语句;其中,所述字段类型包括字符类型和函数类型;
在本步骤中,对目标字段的字段类型进行判断,若目标字段为字段类型且为无权访问的敏感字符,则将对目标字段进行脱敏操作,例如目标字段T,脱敏后的字段为UDF(T),UDF()为脱敏函数。若目标字段为函数类型且其中包含无权访问的敏感字符,则将对敏感字符进行脱敏操作,例如目标字段 F(T),脱敏后的字段为F(UDF(T))。将待执行SQL语句中的目标字段替换为脱敏后的字段,得到目标SQL语句。
优选的,本实施例还可以对以白名单或黑名单的方式对目标字段中的函数进行筛选。作为一种可行的实施方式,所述基于所述目标字段的字段类型对所述敏感字符进行脱敏操作,包括:若所述目标字段的字段类型为所述函数类型,则判断函数操作白名单是否包含所述目标字段对应的目标函数操作;若否,则对所述敏感字符进行脱敏操作。在具体实施中,函数操作白名单可以包括聚合函数、数学计算函数和时间函数等,聚合函数例如COUNT、MAX、 MIN、SUM、AVG等。若函数操作白名单包含目标字段对应的目标函数操作,则不需要对目标字段进行脱敏。
作为另一种可行的实施方式,所述基于所述目标字段的字段类型对所述敏感字符进行脱敏操作,包括:若所述目标字段的字段类型为所述函数类型,则判断函数操作黑名单是否包含所述目标字段对应的目标函数操作;若是,则对所述敏感字符进行脱敏操作。在具体实施中,函数操作黑名单可以包括字符串操作函数、加解密函数、摘要函数、编码函数、二进制操作函数等,字符串操作函数例如CONCAT、SUBSTR、SUBSTRING等,若函数操作黑名单包含目标字段对应的目标函数操作,则需要对目标字段进行脱敏,即将其中的敏感字符替换为脱敏后的字符。
可以理解的是,若前述步骤以AST语法树的形式对待执行SQL语句进行分析,则所述基于所述目标字段的字段类型对所述敏感字符进行脱敏操作,以生成目标SQL语句,包括:基于所述目标字段的字段类型确定所述目标字段对应的脱敏字段;将所述AST语法树中所述目标字段所在的节点更新为所述脱敏字段;根据更新后的AST语法树生成目标SQL语句。在具体实施中,将AST语法树中目标字段所在的节点更新为对应的脱敏字段,根据更新后的 AST语法树生成脱敏后的SQL语句,即目标SQL语句。
S103:将所述目标SQL语句发送至引擎处理。
在本步骤中,目标SQL语句为脱敏后的SQL语句,将目标SQL语句发送至引擎,以便引擎对其进行响应处理。
本申请实施例提供的数据脱敏方法,通过对待执行SQL语句进行解析获取其中查询部分的目标字段,包括字符类型的字段和函数类型的字段,根据不同的字段类型采用不同的脱敏策略。可见,本申请实施例提供的数据脱敏方法,可以在待执行SQL语句执行前对包括函数类型的原始数据进行脱敏,有效防止攻击者通过特殊函数绕过脱敏策略,有效遏制攻击者窃取数据的企图,从而实现对敏感数据进行有效保护。
本申请实施例公开了一种数据脱敏方法,相对于上一实施例,本实施例对技术方案作了进一步的说明和优化。具体的:
参见图2,根据一示例性实施例示出的另一种数据脱敏方法的流程图,如图2所示,包括:
S201:获取待执行SQL语句;
S202:对所述待执行SQL语句进行解析,以生成所述待执行SQL语句对应的AST语法树;
S203:基于所述AST语法树构建所述待执行SQL语句中查询部分对应的字段信息列表;
S204:遍历所述字段信息列表,将所述字段信息列表中的每个字段节点作为目标字段节点,并进入S205;
S205:根据所述目标字段节点的字段信息和对应的FROM节点信息判断所述目标字段节点是否来源于目标查询从句;若是,则进入S206;若否,则进入S207;
S206:将所述目标查询从句中的每个字段节点作为所述目标字段节点,并重新进入S205;
S207:将所述目标字段节点对应的字段确定为目标字段;
在本实施例中,基于待执行SQL语句中查询部分的字段构建字段信息列表,通过节点筛选过程确定其中的每个字段是否为目标字段。在具体实施中,遍历字段信息列表,对于段信息列表中的每个字段节点执行节点筛选过程,即根据字段节点的字段信息和对应的FROM节点信息判断其是否来源于目标查询从句,若来源于目标查询从句,则遍历目标查询从句中的每个字段节点,针对目标查询从句中的每个字段节点重新执行节点筛选过程,若并非来源于目标查询从句,则将该字段节点确定为目标字段节点。
S208:若所述目标字段包含敏感字符,则基于所述目标字段的字段类型对所述敏感字符进行脱敏操作,以生成目标SQL语句;其中,所述字段类型包括字符类型和函数类型;
S209:将所述目标SQL语句发送至引擎处理。
本实施例通过解析SQL语法建立AST语法树,AST语法树可以准确快速的建立待执行SQL语句的语法结构,基于AST语法树可以准确快速的确定待执行SQL语句中查询部分的目标字段。由此可见,本实施例提高了数据脱敏的准确度和速度。
本申请实施例公开了一种数据脱敏方法,相对于上一实施例,本实施例对技术方案作了进一步的说明和优化。具体的:
参见图3,根据一示例性实施例示出的又一种数据脱敏方法的流程图,如图3所示,包括:
S301:获取待执行SQL语句;
S302:对所述待执行SQL语句进行解析,以生成所述待执行SQL语句对应的AST语法树;
S303:基于所述AST语法树判断所述待执行SQL语句是否为查询语句;若是,则进入S304;若否,则进入S307;
S304:将所述待执行SQL语句作为目标语句,并进入S305;
S305:将所述目标语句对应的字段信息加入字段信息列表中,并判断所述目标语句对应的FROM节点是否为第二查询从句;若是,则进入S306;若否,则进入S309;
S306:将所述第二查询语句作为所述目标语句,并重新进入S305;
S307:判断所述待执行SQL语句是否包含第一查询从句;若是,则进入 S308;
S308:将所述第一查询语句作为所述目标语句,并进入S305。
在本实施例中,通过语句筛选过程确定待执行SQL语句中的查询部分。在具体实施中,若待执行SQL语句为查询语句,则直接对待执行SQL语句进行语句筛选过程,若待执行SQL语句不为查询语句,则判断待执行SQL语句是否包含第一查询从句,若是,则对第一查询从句进行语句筛选过程。
其中,语句筛选过程为判断将目标语句对应的字段信息加入字段信息列表中,并判断目标语句对应的FROM节点是否为第二查询从句,若是,则对第二查询从句重新进行语句筛选过程。可以理解的是,由于除FROM节点之外的其他类型的节点不涉及输出敏感数据信息,故而无需进行处理,保持不变即可。
S309:得到构建完成的字段信息列表,遍历所述字段信息列表,将所述字段信息列表中的每个字段节点作为目标字段节点,并进入S310;
S310:根据所述目标字段节点的字段信息和对应的FROM节点信息判断所述目标字段节点是否来源于目标查询从句;若是,则进入S311;若否,则进入S312;
S311:将所述目标查询从句中的每个字段节点作为所述目标字段节点,并重新进入S310;
S312:将所述目标字段节点对应的字段确定为目标字段;
S313:若所述目标字段包含敏感字符,则基于所述目标字段的字段类型对所述敏感字符进行脱敏操作,以生成目标SQL语句;其中,所述字段类型包括字符类型和函数类型;
S314:将所述目标SQL语句发送至引擎处理。
由此可见,本实施例通过解析SQL语法建立AST语法树,基于AST语法树识别待执行SQL语句中对敏感数据进行的敏感函数操作,通过SQL再编辑,对敏感字段和敏感函数操作织入脱敏逻辑,防止攻击者通过特殊函数绕过脱敏策略,导致脱敏策略失效。
下面介绍本申请提供的一种应用实施例,具体可以包括两个阶段,第一阶段为解析SQL语句,提取SELECT语句;第二阶段为分析SELECT语句,织入脱敏逻辑。
第一阶段的流程如图4所示,具体分析行为如下:
步骤1:通过多种途径获取到客户端执行的SQL语句,具体方式可以是协议解析、更换SDK等,本方案不关注如何获取SQL语句。
步骤2:对获取到的SQL语句执行语法解析,产出AST语法树。实际解析时可以使用Calcite进行SQL分析。
步骤3:判断当前SQL是否是SELECT语句,如果是,则进行步骤5,否则执行步骤4。
步骤4:当前SQL不是SELECT语句,则分析语句结构,判断当前语句是否包含SELECT从句。若包含,则解析出SELECT从句(命名为S1),之后,针对语句S1执行步骤5。若不包含,则无需对此语句进行任何处理。
第二阶段的流程如图5所示,具体分析行为如下:
步骤5:分析SELECT语句结构,对不同位置的节点分别进行处置,具体如下:
a输出字段信息列表L(包含函数等操作)。
b针对FROM节点,判断节点类型。若为SELECT从句命名为(S2),则之后,针对语句S2执行步骤5。若为数据表节点,则无需对此语句进行任何处理,保持不变即可。
c针对其他类型的节点,因不涉及输出敏感数据信息,故而无需进行处理,保持不变即可。
步骤6:针对S1输出字段信息列表进行遍历,对每一字段节点,进行步骤7。
步骤7:根据当前字段节点和FROM节点信息,校验当前字段是否来源于SELECT从句,如果是,则获取从句中该字段信息列和从句FROM节点信息,进行步骤7,否则进行步骤8。
步骤8:对字段节点类型进行判断。若为字段类型(命名为T),则执行步骤9;若为函数类型(命名为F(T)),则执行步骤10。
步骤9:判断T是否为无权限访问的敏感数据,若是,则执行步骤11,否则,无需对T进行任何处理。
步骤10:判断F(T)中的字段T是否为无权限访问的敏感数据,若是,则执行步骤12,否则,无需对函数操作F(T)进行任何处理。
步骤11:将SQL中的输出信息T节点替换成脱敏操作UDF(T)节点。
步骤12:取出F(T)中的函数操作F,进行函数白名单判断,若未命中白名单,则执行步骤13。否则,无需对函数操作F(T)进行任何处理。
步骤13:将SQL中的输出信息F(T)替换成脱敏操作F(UDF(T))。
步骤14:待AST语法树全部分析完成后,基于修改后的AST语法树,重新生成脱敏后的SQL语句,并将SQL语句发往执行引擎进行处理。
下面对本申请实施例提供的一种数据脱敏装置进行介绍,下文描述的一种数据脱敏装置与上文描述的一种数据脱敏方法可以相互参照。
参见图6,根据一示例性实施例示出的一种数据脱敏装置的结构图,如图6所示,包括:
确定模块601,用于获取待执行SQL语句,对所述待执行SQL语句进行解析,以确定所述待执行SQL语句中查询部分的目标字段;
脱敏模块602,用于若所述目标字段包含敏感字符,则基于所述目标字段的字段类型对所述敏感字符进行脱敏操作,以生成目标SQL语句;其中,所述字段类型包括字符类型和函数类型;
发送模块603,用于将所述目标SQL语句发送至引擎处理。
本申请实施例提供的数据脱敏装置,通过对待执行SQL语句进行解析获取其中查询部分的目标字段,包括字符类型的字段和函数类型的字段,根据不同的字段类型采用不同的脱敏策略。可见,本申请实施例提供的数据脱敏装置,可以在待执行SQL语句执行前对包括函数类型的原始数据进行脱敏,有效防止攻击者通过特殊函数绕过脱敏策略,有效遏制攻击者窃取数据的企图,从而实现对敏感数据进行有效保护。
在上述实施例的基础上,作为一种优选实施方式,所述确定模块601包括:
获取子模块,用于获取待执行SQL语句;
生成子模块,用于对所述待执行SQL语句进行解析,以生成所述待执行 SQL语句对应的AST语法树;
确定子模块,用于在所述AST语法树中确定查询部分的目标字段。
在上述实施例的基础上,作为一种优选实施方式,所述确定子模块包括:
构建单元,用于基于所述AST语法树构建所述待执行SQL语句中查询部分对应的字段信息列表;
遍历单元,用于遍历所述字段信息列表,将所述字段信息列表中的每个字段节点作为目标字段节点执行节点筛选单元的工作流程;
其中,所述节点筛选单元,用于根据所述目标字段节点的字段信息和对应的FROM节点信息判断所述目标字段节点是否来源于目标查询从句;若是,则将所述目标查询从句中的每个字段节点作为所述目标字段节点重新执行所述节点筛选单元的工作流程;若否,则将所述目标字段节点对应的字段确定为所述目标字段。
在上述实施例的基础上,作为一种优选实施方式,所述构建单元包括:
第一判断子单元,用于基于所述AST语法树判断所述待执行SQL语句是否为查询语句;若是,则将所述待执行SQL语句作为目标语句执行语句筛选子单元的工作流程;若否,则启动第二判断子单元的工作流程;
第二判断子单元,用于判断所述待执行SQL语句是否包含第一查询从句;若包含,则将所述第一查询语句作为所述目标语句执行所述语句筛选子单元的工作流程;
其中,所述语句筛选子单元,用于将所述目标语句对应的字段信息加入字段信息列表中,并判断所述目标语句对应的FROM节点是否为第二查询从句;若是,则将所述第二查询语句作为所述目标语句重新执行所述语句筛选子单元的工作流程;若否,则得到构建完成的字段信息列表。
在上述实施例的基础上,作为一种优选实施方式,所述脱敏模块602包括:
确定单元,用于若所述目标字段包含敏感字符,则基于所述目标字段的字段类型确定所述目标字段对应的脱敏字段;
更新单元,用于将所述AST语法树中所述目标字段所在的节点更新为所述脱敏字段;
生成单元,用于根据更新后的AST语法树生成目标SQL语句。
在上述实施例的基础上,作为一种优选实施方式,所述脱敏模块602具体为若所述目标字段包含敏感字符且所述目标字段的字段类型为所述函数类型,则判断函数操作白名单是否包含所述目标字段对应的目标函数操作;若否,则对所述敏感字符进行脱敏操作的模块。
在上述实施例的基础上,作为一种优选实施方式,所述脱敏模块602具体为若所述目标字段包含敏感字符且所述目标字段的字段类型为所述函数类型,则判断函数操作黑名单是否包含所述目标字段对应的目标函数操作;若是,则对所述敏感字符进行脱敏操作的模块。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
基于上述程序模块的硬件实现,且为了实现本申请实施例的方法,本申请实施例还提供了一种电子设备,图7为根据一示例性实施例示出的一种电子设备的结构图,如图7所示,电子设备包括:
通信接口1,能够与其它设备比如网络设备等进行信息交互;
处理器2,与通信接口1连接,以实现与其它设备进行信息交互,用于运行计算机程序时,执行上述一个或多个技术方案提供的数据脱敏方法。而所述计算机程序存储在存储器3上。
当然,实际应用时,电子设备中的各个组件通过总线系统4耦合在一起。可理解,总线系统4用于实现这些组件之间的连接通信。总线系统4除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图7中将各种总线都标为总线系统4。
本申请实施例中的存储器3用于存储各种类型的数据以支持电子设备的操作。这些数据的示例包括:用于在电子设备上操作的任何计算机程序。
可以理解,存储器3可以是易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器 (ROM,Read Only Memory)、可编程只读存储器(PROM,Programmable Read-Only Memory)、可擦除可编程只读存储器(EPROM,Erasable Programmable Read-Only Memory)、电可擦除可编程只读存储器(EEPROM, Electrically Erasable Programmable Read-Only Memory)、磁性随机存取存储器 (FRAM,ferromagnetic random access memory)、快闪存储器(Flash Memory)、磁表面存储器、光盘、或只读光盘(CD-ROM,Compact Disc Read-Only Memory);磁表面存储器可以是磁盘存储器或磁带存储器。易失性存储器可以是随机存取存储器(RAM,Random AccessMemory),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(SRAM,Static Random Access Memory)、同步静态随机存取存储器(SSRAM,Synchronous Static Random Access Memory)、动态随机存取存储器(DRAM,Dynamic Random Access Memory)、同步动态随机存取存储器(SDRAM,SynchronousDynamic Random Access Memory)、双倍数据速率同步动态随机存取存储器(DDRSDRAM,Double Data Rate Synchronous Dynamic Random Access Memory)、增强型同步动态随机存取存储器(ESDRAM,Enhanced Synchronous Dynamic Random Access Memory)、同步连接动态随机存取存储器(SLDRAM,SyncLink Dynamic Random Access Memory)、直接内存总线随机存取存储器(DRRAM,Direct Rambus Random Access Memory)。本申请实施例描述的存储器2旨在包括但不限于这些和任意其它适合类型的存储器。
上述本申请实施例揭示的方法可以应用于处理器2中,或者由处理器2 实现。处理器2可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器2中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器2可以是通用处理器、DSP,或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。处理器2可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的方法的步骤,可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于存储介质中,该存储介质位于存储器3,处理器2读取存储器3中的程序,结合其硬件完成前述方法的步骤。
处理器2执行所述程序时实现本申请实施例的各个方法中的相应流程,为了简洁,在此不再赘述。
在示例性实施例中,本申请实施例还提供了一种存储介质,即计算机存储介质,具体为计算机可读存储介质,例如包括存储计算机程序的存储器 3,上述计算机程序可由处理器2执行,以完成前述方法所述步骤。计算机可读存储介质可以是FRAM、ROM、PROM、EPROM、EEPROM、Flash Memory、磁表面存储器、光盘、或CD-ROM等存储器。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本申请上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台电子设备(可以是个人计算机、服务器、或者网络设备等)执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (10)

1.一种数据脱敏方法,其特征在于,包括:
获取待执行SQL语句,对所述待执行SQL语句进行解析,以确定所述待执行SQL语句中查询部分的目标字段;
若所述目标字段包含敏感字符,则基于所述目标字段的字段类型对所述敏感字符进行脱敏操作,以生成目标SQL语句;其中,所述字段类型包括字符类型和函数类型;
将所述目标SQL语句发送至引擎处理。
2.根据权利要求1所述数据脱敏方法,其特征在于,对所述待执行SQL语句进行解析,以确定所述待执行SQL语句中查询部分的目标字段,包括:
对所述待执行SQL语句进行解析,以生成所述待执行SQL语句对应的AST语法树;
在所述AST语法树中确定查询部分的目标字段。
3.根据权利要求2所述数据脱敏方法,其特征在于,在所述AST语法树中确定查询部分的目标字段,包括:
基于所述AST语法树构建所述待执行SQL语句中查询部分对应的字段信息列表;
遍历所述字段信息列表,将所述字段信息列表中的每个字段节点作为目标字段节点执行节点筛选过程;
其中,所述节点筛选过程包括:根据所述目标字段节点的字段信息和对应的FROM节点信息判断所述目标字段节点是否来源于目标查询从句;若是,则将所述目标查询从句中的每个字段节点作为所述目标字段节点重新执行所述节点筛选过程;若否,则将所述目标字段节点对应的字段确定为所述目标字段。
4.根据权利要求3所述数据脱敏方法,其特征在于,所述基于所述AST语法树构建所述待执行SQL语句中查询部分对应的字段信息列表,包括:
基于所述AST语法树判断所述待执行SQL语句是否为查询语句;
若是,则将所述待执行SQL语句作为目标语句执行语句筛选过程;
若否,则判断所述待执行SQL语句是否包含第一查询从句;若包含,则将所述第一查询语句作为所述目标语句执行所述语句筛选过程;
其中,所述语句筛选过程包括:将所述目标语句对应的字段信息加入字段信息列表中,并判断所述目标语句对应的FROM节点是否为第二查询从句;若是,则将所述第二查询语句作为所述目标语句重新执行所述语句筛选过程;若否,则得到构建完成的字段信息列表。
5.根据权利要求2所述数据脱敏方法,其特征在于,所述基于所述目标字段的字段类型对所述敏感字符进行脱敏操作,以生成目标SQL语句,包括:
基于所述目标字段的字段类型确定所述目标字段对应的脱敏字段;
将所述AST语法树中所述目标字段所在的节点更新为所述脱敏字段;
根据更新后的AST语法树生成目标SQL语句。
6.根据权利要求1至5中任一项所述数据脱敏方法,其特征在于,所述基于所述目标字段的字段类型对所述敏感字符进行脱敏操作,包括:
若所述目标字段的字段类型为所述函数类型,则判断函数操作白名单是否包含所述目标字段对应的目标函数操作;
若否,则对所述敏感字符进行脱敏操作。
7.根据权利要求1至5中任一项所述数据脱敏方法,其特征在于,所述基于所述目标字段的字段类型对所述敏感字符进行脱敏操作,包括:
若所述目标字段的字段类型为所述函数类型,则判断函数操作黑名单是否包含所述目标字段对应的目标函数操作;
若是,则对所述敏感字符进行脱敏操作。
8.一种数据脱敏装置,其特征在于,包括:
确定模块,用于获取待执行SQL语句,对所述待执行SQL语句进行解析,以确定所述待执行SQL语句中查询部分的目标字段;
脱敏模块,用于若所述目标字段包含敏感字符,则基于所述目标字段的字段类型对所述敏感字符进行脱敏操作,以生成目标SQL语句;其中,所述字段类型包括字符类型和函数类型;
发送模块,用于将所述目标SQL语句发送至引擎处理。
9.一种电子设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至7任一项所述数据脱敏方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述数据脱敏方法的步骤。
CN202110056293.5A 2021-01-15 2021-01-15 一种数据脱敏方法、装置及电子设备和存储介质 Pending CN112765658A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110056293.5A CN112765658A (zh) 2021-01-15 2021-01-15 一种数据脱敏方法、装置及电子设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110056293.5A CN112765658A (zh) 2021-01-15 2021-01-15 一种数据脱敏方法、装置及电子设备和存储介质

Publications (1)

Publication Number Publication Date
CN112765658A true CN112765658A (zh) 2021-05-07

Family

ID=75702031

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110056293.5A Pending CN112765658A (zh) 2021-01-15 2021-01-15 一种数据脱敏方法、装置及电子设备和存储介质

Country Status (1)

Country Link
CN (1) CN112765658A (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113343297A (zh) * 2021-06-18 2021-09-03 北京明略昭辉科技有限公司 一种Hive数据遮蔽方法、系统、电子设备及存储介质
CN113535754A (zh) * 2021-07-27 2021-10-22 杭州海康威视数字技术股份有限公司 一种数据访问方法、装置及系统
CN113704306A (zh) * 2021-08-31 2021-11-26 上海观安信息技术股份有限公司 数据库的数据处理方法、装置、存储介质及电子设备
CN113722348A (zh) * 2021-06-24 2021-11-30 马上消费金融股份有限公司 结构化查询语言sql语句的处理方法、装置和电子设备
CN113836171A (zh) * 2021-09-27 2021-12-24 北京金山云网络技术有限公司 数据脱敏方法、装置、电子设备及可读存储介质
CN116702181A (zh) * 2023-08-09 2023-09-05 北方健康医疗大数据科技有限公司 基于Apache Calcite的数据脱敏方法、系统、设备及介质

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106295388A (zh) * 2015-06-04 2017-01-04 中国移动通信集团山东有限公司 一种数据脱敏方法和装置
CN106778288A (zh) * 2015-11-24 2017-05-31 阿里巴巴集团控股有限公司 一种数据脱敏的方法及系统
CN107480549A (zh) * 2017-06-28 2017-12-15 银江股份有限公司 一种面向数据共享的敏感信息脱敏方法及系统
CN107885876A (zh) * 2017-11-29 2018-04-06 北京安华金和科技有限公司 一种基于sql语句改写的动态脱敏方法
CN109977222A (zh) * 2019-03-05 2019-07-05 广州海晟科技有限公司 数据敏感行为的识别方法
CN110019377A (zh) * 2017-12-14 2019-07-16 中国移动通信集团山西有限公司 动态脱敏方法、装置、设备及介质
CN110443059A (zh) * 2018-05-02 2019-11-12 中兴通讯股份有限公司 数据保护方法及装置
CN110532797A (zh) * 2019-07-24 2019-12-03 方盈金泰科技(北京)有限公司 大数据的脱敏方法和系统
CN111159754A (zh) * 2019-12-12 2020-05-15 浙江华云信息科技有限公司 逆向解析的数据脱敏方法及装置
CN111191276A (zh) * 2019-12-05 2020-05-22 平安银行股份有限公司 数据脱敏方法、装置、存储介质及计算机设备
CN111199054A (zh) * 2019-12-20 2020-05-26 深圳昂楷科技有限公司 一种数据脱敏方法、装置及数据脱敏设备
CN112163214A (zh) * 2020-09-22 2021-01-01 杭州数梦工场科技有限公司 数据访问的方法和装置

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106295388A (zh) * 2015-06-04 2017-01-04 中国移动通信集团山东有限公司 一种数据脱敏方法和装置
CN106778288A (zh) * 2015-11-24 2017-05-31 阿里巴巴集团控股有限公司 一种数据脱敏的方法及系统
CN107480549A (zh) * 2017-06-28 2017-12-15 银江股份有限公司 一种面向数据共享的敏感信息脱敏方法及系统
CN107885876A (zh) * 2017-11-29 2018-04-06 北京安华金和科技有限公司 一种基于sql语句改写的动态脱敏方法
CN110019377A (zh) * 2017-12-14 2019-07-16 中国移动通信集团山西有限公司 动态脱敏方法、装置、设备及介质
CN110443059A (zh) * 2018-05-02 2019-11-12 中兴通讯股份有限公司 数据保护方法及装置
CN109977222A (zh) * 2019-03-05 2019-07-05 广州海晟科技有限公司 数据敏感行为的识别方法
CN110532797A (zh) * 2019-07-24 2019-12-03 方盈金泰科技(北京)有限公司 大数据的脱敏方法和系统
CN111191276A (zh) * 2019-12-05 2020-05-22 平安银行股份有限公司 数据脱敏方法、装置、存储介质及计算机设备
CN111159754A (zh) * 2019-12-12 2020-05-15 浙江华云信息科技有限公司 逆向解析的数据脱敏方法及装置
CN111199054A (zh) * 2019-12-20 2020-05-26 深圳昂楷科技有限公司 一种数据脱敏方法、装置及数据脱敏设备
CN112163214A (zh) * 2020-09-22 2021-01-01 杭州数梦工场科技有限公司 数据访问的方法和装置

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113343297A (zh) * 2021-06-18 2021-09-03 北京明略昭辉科技有限公司 一种Hive数据遮蔽方法、系统、电子设备及存储介质
CN113722348A (zh) * 2021-06-24 2021-11-30 马上消费金融股份有限公司 结构化查询语言sql语句的处理方法、装置和电子设备
CN113535754A (zh) * 2021-07-27 2021-10-22 杭州海康威视数字技术股份有限公司 一种数据访问方法、装置及系统
CN113704306A (zh) * 2021-08-31 2021-11-26 上海观安信息技术股份有限公司 数据库的数据处理方法、装置、存储介质及电子设备
CN113704306B (zh) * 2021-08-31 2024-01-30 上海观安信息技术股份有限公司 数据库的数据处理方法、装置、存储介质及电子设备
CN113836171A (zh) * 2021-09-27 2021-12-24 北京金山云网络技术有限公司 数据脱敏方法、装置、电子设备及可读存储介质
CN116702181A (zh) * 2023-08-09 2023-09-05 北方健康医疗大数据科技有限公司 基于Apache Calcite的数据脱敏方法、系统、设备及介质

Similar Documents

Publication Publication Date Title
CN112765658A (zh) 一种数据脱敏方法、装置及电子设备和存储介质
US9715593B2 (en) Software vulnerabilities detection system and methods
US9336370B2 (en) Method and apparatus for dynamic obfuscation of static data
CN110414261B (zh) 一种数据脱敏方法、装置、设备及可读存储介质
US20130014267A1 (en) Computer protocol generation and obfuscation
CN110598379B (zh) 一种实现字符串混淆的方法、设备及存储介质
CN110445769B (zh) 业务系统的访问方法及装置
CN110909358A (zh) 一种基于动静态分析的整形漏洞检测方法
CN108959936B (zh) 一种基于路径分析的缓冲区溢出漏洞自动利用方法
CN110333872B (zh) 一种应用的处理方法、装置、设备和介质
CN111538962A (zh) 程序控制流混淆方法、系统、存储介质、云服务器及应用
CN112269644B (zh) 一种子进程调用的验证方法、系统、设备及可读存储介质
CN108021790B (zh) 文件保护方法、装置、计算设备及计算机存储介质
CN111475168A (zh) 一种代码编译方法及装置
CN114090965B (zh) java代码混淆方法、系统、计算机设备及存储介质
US11755723B2 (en) Device and method for validation of virtual function pointers
CN115168861A (zh) 数据安全验证方法、装置、设备及存储介质
CN112632550B (zh) 口令和密钥的应用安全的检测方法及其电子设备
US20190102573A1 (en) Theater ears android app sensitive data management
CN107436728B (zh) 规则分析结果存储方法、规则回溯方法及装置
CN113297622A (zh) 一种日志脱敏方法、系统、电子设备及存储介质
CN112433943A (zh) 基于抽象语法树的环境变量检测方法、装置、设备及介质
CN113553068A (zh) 一种下载应用包的方法、装置和电子设备
CN114095236B (zh) 密钥查找方法、装置、计算设备及存储介质
JPWO2019176011A1 (ja) 検索文活用装置および検索文活用方法

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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20210507