CN110019377B - 动态脱敏方法、装置、设备及介质 - Google Patents
动态脱敏方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN110019377B CN110019377B CN201711337154.XA CN201711337154A CN110019377B CN 110019377 B CN110019377 B CN 110019377B CN 201711337154 A CN201711337154 A CN 201711337154A CN 110019377 B CN110019377 B CN 110019377B
- Authority
- CN
- China
- Prior art keywords
- operation information
- user
- information
- determining
- desensitization
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2457—Query processing with adaptation to user needs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting 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/6245—Protecting personal data, e.g. for financial or medical purposes
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)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Data Mining & Analysis (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
本发明实施例提供了一种动态脱敏方法、装置、设备及介质。其中,该方法包括:在用户查询的查询内容中存在敏感信息的情况下,获取用户在查询查询内容之前的操作信息;根据操作信息与用户的当前操作信息的关系,判断是否对敏感信息进行脱敏处理。通过本发明实施例,能够解决现有技术中的数据脱敏方法用户体验度差的问题。
Description
技术领域
本发明涉及数据处理技术领域,尤其涉及一种动态脱敏方法、装置、设备及介质。
背景技术
随着信息技术的发展,对个人信息的保护提升到一个新的高度。为了更好的保护以个人信息为例的敏感信息,敏感信息脱敏是一个常用且有效的方法。
目前的脱敏方法为:根据用户权限在数据表中预先标注脱敏列,不同权限的用户,标识的脱敏列可以不同,采用关键字匹配的方式对用户提供的SQL语句进行模式匹配,若匹配到form关键字,则认为其后出现的为数据表名,若匹配到select关键字,则认为其后出现的是列名。当匹配出的数据表名和列名与预先标注的脱敏列名以及其所在的数据表名相同,则对返回的该脱敏列中的数据进行脱敏处理。
例如,数据表T中包括2列,分别为A列和B列,其中,A列为脱敏列。若获取到用户提供的SQL语句为select A from T,则匹配到select关键字后面的A为列名,form关键字后面的T为数据表名,而T表中的A列为脱敏列,因此在返回T表中的A列数据的时候,会先对其进行脱敏处理。
然而,数据表名和列名是可以自定义的,例如,定义别名。若用户定义数据表T中A列的别名为A1列,则用户提供的SQL语句会变为:select A1 from(select A as A1 fromT)。此种情况下,现有技术会出现将第一个select关键字后面的A1识别为列名,将第二个form关键字后面的T识别为数据表名,而T表中的A1列并未确定为脱敏列,因此在返回实际的T表中的A列数据的时候,不会对其进行脱敏处理,造成敏感信息的泄露。
另外,不同用户所对应的脱敏列是固定的,无论该用户在什么场景下查询脱敏列,返回的数据均会被脱敏处理。但是,同一用户在不同场景下对敏感信息的需求是不同的,例如,在普通的查询充值缴费记录场景下,充值的银行卡号属于敏感列,会被脱敏处理。但在充值时,用户可能会忘记之前用于充值缴费的银行号码,此背景下用户查询充值缴费记录,用户希望获取到真实的银行卡号,而不是脱敏后的银行卡号。在现有技术中,无法根据用户场景的不同,对脱敏列进行动态脱敏,降低用户体验度。
综上所述,现有技术中的数据脱敏方法保密性低或者用户体验度差的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种动态脱敏方法、装置、设备及介质,能够解决现有技术中的数据脱敏方法保密性低或者用户体验度差的问题。
第一方面,本发明实施例提供了一种动态脱敏方法,方法包括:
在用户查询的查询内容中存在敏感信息的情况下,获取所述用户在查询所述查询内容之前的操作信息;
根据所述操作信息与所述用户的当前操作信息的关系,判断是否对所述敏感信息进行脱敏处理。
第二方面,本发明实施例提供了一种动态脱敏装置,装置包括:
获取模块,用于在用户查询的查询内容中存在敏感信息的情况下,获取所述用户在查询所述查询内容之前的操作信息;
判断模块,用于根据所述操作信息与所述用户的当前操作信息的关系,判断是否对所述敏感信息进行脱敏处理。
第三方面,本发明实施例提供了一种动态脱敏设备,包括:至少一个处理器、至少一个存储器以及存储在存储器中的计算机程序指令,当计算机程序指令被处理器执行时实现如上述实施方式中第一方面的方法。
第四方面,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序指令,当计算机程序指令被处理器执行时实现如上述实施方式中第一方面的方法。
本发明实施例提供的动态脱敏方法、装置、设备及介质,根据用户在查询所查询内容之前的操作信息与用户的当前操作信息之间的关系来判断用户的当前操作的用户场景,从而可以根据用户场景来判断是否对查询内容中的敏感信息进行脱敏处理;相对于相关技术中不考虑用户场景而对所有返回的数据都进行脱敏处理的方式而言,本发明实施例解决了现有技术中的数据脱敏方法用户体验度差的问题,提高了用户体验度。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了本发明一个实施例的动态脱敏方法的流程图;
图2示出了本发明一个实施例的列名和数据表名构成的树的示意图;
图3示出了本发明一个实施例的可归约的语法树的示意图;
图4示出了本发明一个实施例的表示操作节点关联关系的有向图;
图5示出了本发明一个实施例的动态脱敏装置的结构框图;
图6示出了本发明一个实施例的动态脱敏设备的硬件结构示意图。
具体实施方式
下面将详细描述本发明的各个方面的特征和示例性实施例,为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细描述。应理解,此处所描述的具体实施例仅被配置为解释本发明,并不被配置为限定本发明。对于本领域技术人员来说,本发明可以在不需要这些具体细节中的一些细节的情况下实施。下面对实施例的描述仅仅是为了通过示出本发明的示例来提供对本发明更好的理解。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
首先,将概述本发明实施例的技术方案。本发明实施例提供一种动态脱敏方法,通过对用户提供的SQL语句进行语义分析,建立语法树,根据该语法树进行敏感数据脱敏处理,保证脱敏处理的准确率。此外,本发明实施例提供的方法还可以对用户查询场景进行语义分析,确定用户真实查询需求,进而对脱敏列是否进行脱敏处理进行动态确定,实现同一用户不同需求的动态脱敏。
另外,现有技术基于关键字匹配确定返回的列,在列名中包括from等情况时(如select myfrom from U),其会将myfrom中的from确定为关键词,将其后面的from确定为数据表名,而到数据库中查找表名为from的数据表。而本发明实施例基于语义进行脱敏处理,对于上述语句,会查找U数据表中的myfrom列,降低脱敏处理执行时的错误率。满足当前社会对敏感数据的高保密性、无出错率的要求。
下面,将结合附图对本发明实施例提供的动态脱敏方法、装置、设备及介质进行详细说明。
在本发明一个实施例中,提供了一种动态脱敏方法。图1是示出了本实施例的动态脱敏方法的流程图,如图1所示,该方法包括如下步骤:
步骤S101,在用户查询的查询内容中存在敏感信息的情况下,获取用户在查询查询内容之前的操作信息;
步骤S102,根据操作信息与用户的当前操作信息的关系,判断是否对敏感信息进行脱敏处理。
通过本实施例的上述的步骤,在识别出用户查询的查询内容中包括敏感信息时,还将进一步根据用户在查询该查询内容之前的操作信息,来判断是否对敏感信息进行脱敏处理;而用户在查询该查询内容之前的操作信息能够反映用户执行查询操作时所处的用户场景,进而体现用户的真实查询需求。相比于现有技术中的数据脱敏方法无论在何种场景下都直接对预先设定的敏感信息进行脱敏处理的方式而言,通过上述步骤解决了现有技术中的数据脱敏方法用户体验度差的问题,提高了用户体验度。
在一个示例中,步骤S102可以采用下列的方式来判断是否对敏感信息进行脱敏处理:确定操作信息与当前操作信息之间的语义映射关系,当前操作信息是指用户在查询查询内容时所使用的SQL语句对应的操作信息;在语义映射关系为强相关关系的情况下,确定不对敏感信息进行脱敏处理;否则,确定对敏感信息进行脱敏处理。
在上述步骤S102中,确定操作信息与当前操作信息之间的语义映射关系包括:判断操作信息中最近的两个操作之间是否为预设关联关系;在判断到两个操作之间不为预设关联关系的情况下,确定操作信息与当前操作信息之间的语义映射关系为强相关关系;否则,确定操作信息与当前操作信息之间的语义映射关系为非强相关关系。上述的预设关联关系例如可以是指执行某一个具体业务预先制定的关联关系。例如,在充值缴费的业务中,“打开充值页面”-“输入充值数额并点击确认按钮”-“选择支付方式并完成支付”-“显示充值结果”即为预设关联关系。
在上述步骤S102中,确定操作信息与当前操作信息之间的语义映射关系包括:判断操作信息中最近的两个操作之间是否为预设关联关系,以及判断用户在两个操作中的前一个操作对应的操作页面停留的时间是否超过预设时长;在判断到两个操作之间不为预设关联关系且用户在两个操作中的前一个操作对应的操作页面停留的时间超过预设时长的情况下,确定操作信息与当前操作信息之间的语义映射关系为强相关关系;否则,确定操作信息与当前操作信息之间的语义映射关系为非强相关关系。在该方式中,进一步考虑了用户误操作,通过用户在两个操作中的前一个操作对应的操作页面停留的时间来判断用户的后一个操作是否为误操作。上述的预设时长可以根据经验设置,例如可以设置为5秒、8秒或者其他数值。
在步骤S101之前,方法还包括:识别用户查询的查询内容中是否包括敏感信息。识别敏感信息的方式可以采用现有技术中的各种方式。在本实施例中,为了解决因自定义列名或者表名导致的数据脱敏安全性低的问题,采用了下列的方法来识别用户查询的查询内容中是否包括敏感信息:获取用户查询查询内容时所使用的SQL语句;对该SQL语句进行词法解析,确定目标列名和目标表名;通过语法解析器对该SQL语句进行语法解析,并根据解析得到的目标列名所在的真实表和虚拟表之间的关系,建立列名、虚拟表名、真实表名之间的可归约的语法树;根据可归约的语法树、目标列名和目标表名,确定待返回的列信息;根据待返回的列信息,识别用户查询的查询内容中是否包括敏感信息。
通过对SQL语句进行词法解析,能够准确确定与该SQL语句对应的目标列名和目标表名。可以对SQL语句进行词法解析的解析器有多种,在本实施例中例如可以使用LALR(1)技术的解析器来进行SQL语句的词法解析。
为了使本实施例更加清楚,下面采用示例对本实施例进行描述和说明。
本示例提供的动态脱敏方法,旨在通过对用户提供的SQL语句进行语义分析,建立可归约的语法树,根据该可归约的语法树进行敏感数据脱敏处理,保证脱敏处理的准确率,满足当前社会对敏感数据的高保密性、无出错率的要求。
同时,本示例提供的动态脱敏方法在确定用户查询为预先设定的脱敏数据后,还会对用户查询场景进行语义分析,以确定用户真实查询需求,进而对脱敏列是否进行脱敏处理进行动态确定。即,对于同一用户调用同一脱敏数据,并非每次查询均进行脱敏,而是根据当次查询的语义分析结果,灵活确认是否进行脱敏,若语义分析结果表明不需进行脱敏,则当次查询结果不再进行脱敏处理,而是显示原始数据,实现同一用户不同需求的动态脱敏。
本示例的动态脱敏方法包括如下步骤:
步骤1,获取用户提供的SQL语句。
步骤2,对SQL语句进行词法解析。
先采用LALR(1)技术实现SQL语句的词法解析。
将LALR(1)技术用于SQL识别中,可以精确的获悉SQL语句的语义,对于多层嵌套的select语句可以准确的确定目标列名和数据表名。而现有技术由于其关键字匹配的方法,对于多层嵌套的select语句很难准确的确定目标列名和数据表名,容易造成误判。
步骤3,通过语法解析器对SQL语句进行语法解析,建立可归约的语法树。
每一个语言自己的语法特性各不相同,但都和相应的编译器遵守一种规则,这样SQL语句才能够被编译器识别。在本步骤中,通过制定语法规则表达式,形成可归约的语法树,具体包括如下步骤:
根据步骤2中得到的列名和数据表名,建立一个由2个节点组成的树;再根据真实表和虚拟表之间的关系,建立可归约的语法树。
本步骤中得到的可归约的语法树是目标列和数据表、各虚拟表之间的从属关系的体现,根据该可归约的语法树可以准确的找到目标列所在的各级表之间隶属的关系。对于多层嵌套的SQL语言,可以清晰的示出目标列所在的根本表。
本步骤中的可归约的语法树具有如下有益效果:避免现有技术中由于嵌套层次较多而造成的根本表确定失误而造成的脱敏错误;保证动态脱敏方法的准确率;基于可归约的语法树可以形成新的语法,能够提升下次相同目标列的是否脱敏的判断效率;根据该可归约的语法树可以明确的得知用户输入的SQL语句是否合法,减少脱敏过程中对非法语句进行处理所带来的资源浪费。
步骤4,根据可归约的语法树以及列信息和表信息确定待返回的列信息。
通过可归约的语法树以及列信息和表信息可以准确的确定SQL语句实际所需要查询的真实表以及真实表中的列,而不论SQL语句嵌套多少层、多少虚拟表存在别名、多少列存在别名。而在现有技术中,当SQL语句嵌套较多,别名较多时,往往降低识别的准确性。此外,基于可归约的语法树可以形成新的语法,提升下次相同目标列是否脱敏的判断效率。根据该可归约的语法树可以明确得知用户输入的SQL语句是否合法,减少脱敏过程中对非法语句进行处理所带来的资源浪费。
执行至此,可以获得用户此次查询内容是否为预设的脱敏内容。但是,最终是否脱敏,并非基于目前分析确定,而是将继续执行步骤5,根据步骤5的结果确定。若语义分析结果表明不需进行脱敏,即查询内容为脱敏内容也不会进行脱敏处理,而是显示原始数据,实现同一用户不同需求的动态脱敏。
步骤5,根据待返回的列信息确定是否需要进行脱敏处理,如果需要则返回脱敏处理后的数据,如果不需要则返回原始数据。步骤5具体包括如下步骤:
步骤5.1,如果根据预先标注的脱敏列,确定返回的列信息为非脱敏列,则确定不需要进行脱敏处理;
步骤5.2,如果根据预先标注的脱敏列,确定返回的列信息为脱敏列,则进行如下处理:
1)获取用户此次查询之前的操作信息,形成操作状态向量V={v1,v2,...,vn},其中vi为各操作节点(如打开页面信息,输入数据的字段信息)。
2)确定当前SQL语句输入的操作对应的操作节点vn与之前操作对应的其他节点之间的语义映射关系。
3)若语义映射关系为强相关,则确定返回的列信息不进行脱敏处理。若语义映射关系为非强相关,则返回的列信息进行脱敏处理。
其中,对于2)确定SQL语句输入对应的操作节点vn与其他节点之间的语义映射关系,可以通过如下步骤实现:
(1)根据操作状态向量V,各操作节点所对应页面之间的关联关系,得到V为节点的有向图。
(2)对于若则确定vi与vn之间有消息传递,且消息接收总在消息发送之后,表明,在流程设计之初,vi与vn即存在关联关系,而用户此次操作为正常操作,该两点之间的语义映射关系为非强相关关系。其中,s为发送消息,r为接收消息,Vi'为vi相连的节点集合,Vn'为vn相连的节点集合。
(3)若则表明,在流程设计之初,vi与vn不存在关联关系,而是用户此次偶然操作,对于此种关系,如果前节点i未完成正常流程,且,节点的停留时间多于例如预设时间5秒(在本示例中,少于5秒认为误操作),同时,节点i所属页面中包括与返回的列信息相关的信息,则认为两点之间的语义映射关系为强相关关系。
通过上述过程可以确定SQL语句输入对应的操作节点与其他节点之间的语义映射关系,如果其他节点非正常结束,两点之间是非预先设计的关联关系,且,其他节点并非误操作,同时,其他节点中包括SQL语句返回的列信息相关内容,则认为,用户对SQL语句输入对应的操作节点进行操作与其他节点存在用户认为的关联关系,即强关联关系。
例如,用户在操作充值节点后,又操作充值缴费记录查询节点,并通过SQL语句获取真实的银行卡号。而充值节点在未点击确定按钮情况下,与充值缴费记录查询节点之间非预先设计的关联关系(即在打开充值页面且未点击确定按钮情况下必然要打开充值缴费记录查询页面),且,其充值节点并非误操作,同时,充值节点中包括SQL语句返回的列信息相关的银行卡号,则认为用户打开充值缴费记录查询页面是与充值相关的,即存在强相关,则确定返回的卡号不进行脱敏处理。从而实现针对场景的语义关系动态脱敏,提升用户体验度。
本示例提供的方法,通过对用户提供的SQL语句进行语义分析,建立可归约的语法树,根据该可归约的语法树进行敏感数据脱敏处理,保证脱敏处理的高准确率。同时,还对用户查询场景进行语义分析,确定用户真实查询需求,进而对脱敏列是否进行脱敏处理进行动态确定,实现同一用户不同需求的动态脱敏。
下面结合附图来对上述示例进行说明。
例如,对于如下场景:数据表T包括4列,分别为A列、B列、C列、D列,A列为预设的敏感列。将A列的别名命名为A1,选择数据表T中的A1列、B列、C列形成虚拟表T1,选择虚拟表T1中的A1列、B列形成虚拟表T2。用户想搜索A1列。
步骤1,获取到如下SQL语句:select A1 from(select A as A1 from T)。
步骤2,对该SQL语句进行语法解析
将select A1 from(select A as A1 from T)语句输入基于LALR(1)技术的编译器中,在识别出“select”、“A1”、“from”词后并不进行归约,而是等待()中内容的归约结果,即将“select”、“A”、“as”、“A1”、“from”、“T”进行归约后,在与“select”、“A1”、“from”词归约,得到列名A1和数据表名T,A1的信息(包括A1字符在SQL语句中的位置,A1字符的长度、A1为A的别名等)、T的信息(包括T字符在SQL语句中的位置,T字符的长度,T为真实表等)等。
步骤3,建立可归约的语法树:
(1)根据列名A1和数据表名T,建立一个有2个节点组成的树,如图2所示。
(2)根据A1所在的真实表和虚拟表之间的关系,建立可归约的语法树。
例如,A1位于虚拟表T1和T2中,形成图3所示的可归约的语法树。
步骤4,根据待返回的列信息确定是否需要进行脱敏处理:
1)获取用户此次查询之前的操作信息,如:打开充值页面、查询充值缴费,形成操作状态向量V={v1,v2,v3},其中v1为打开充值页面对应的操作节点,v2为查询充值缴费对应的操作节点,v3为当前SQL语句输入的操作对应的操作节点。
2)根据V,各操作节点所对应页面之间的关联关系,得到V为节点的有向图,如图4所示。
3)若有向图中满足如下关系:
则表明,用户在操作充值节点v1后,又操作充值缴费记录查询节点v2,并通过SQL语句获取真实的银行卡号v3。而充值节点在未点击确定按钮情况下,与充值缴费记录查询节点之间非预先设计的关联关系(即在打开充值页面且未点击确定按钮情况下必然要打开充值缴费记录查询页面),且,其充值节点的停留时间为15秒(多于本示例中预设的时长5秒),即非误操作,同时,充值节点中包括SQL语句返回的列信息相关的银行卡号,则认为用户打开充值缴费记录查询页面是与充值相关的,即存在强相关,则确定返回的卡号不进行脱敏处理。
即,向用户返回真实卡号,不进行脱敏处理。
通过步骤4,可以对于同一用户调用同一脱敏数据,并非每次查询均进行脱敏,而是根据当次查询的语义分析结果,灵活确认是否进行脱敏,若语义分析结果表明不需进行脱敏,则当次查询结果不再进行脱敏处理,而是显示原始数据,实现同一用户不同需求的动态脱敏。
在本发明一个实施例中还提供了一种动态脱敏装置。图5示出了本实施例的动态脱敏装置的结构框图,如图5所示,该装置包括:
获取模块51,用于在用户查询的查询内容中存在敏感信息的情况下,获取用户在查询查询内容之前的操作信息;
判断模块52,根据操作信息与用户的当前操作信息的关系,判断是否对敏感信息进行脱敏处理。
可选地,判断模块52,用于确定操作信息与当前操作信息之间的语义映射关系,当前操作信息是指用户在查询查询内容时所使用的SQL语句对应的操作信息;在语义映射关系为强相关关系的情况下,确定不对敏感信息进行脱敏处理;否则,确定对敏感信息进行脱敏处理。
可选地,判断模块52确定操作信息与当前操作信息之间的语义映射关系可以包括:判断操作信息中最近的两个操作之间是否为预设关联关系;在判断到两个操作之间不为预设关联关系的情况下,确定操作信息与当前操作信息之间的语义映射关系为强相关关系;否则,确定操作信息与当前操作信息之间的语义映射关系为非强相关关系。
可选地,判断模块52确定操作信息与当前操作信息之间的语义映射关系可以包括:判断操作信息中最近的两个操作之间是否为预设关联关系,以及判断用户在两个操作中的前一个操作对应的操作页面停留的时间是否超过预设时长;在判断到两个操作之间不为预设关联关系且用户在两个操作中的前一个操作对应的操作页面停留的时间超过预设时长的情况下,确定操作信息与当前操作信息之间的语义映射关系为强相关关系;否则,确定操作信息与当前操作信息之间的语义映射关系为非强相关关系。
可选地,装置还包括:识别模块,与获取模块51连接,用于获取用户查询查询内容时所使用的SQL语句;对该SQL语句进行词法解析,确定目标列名和目标表名;通过语法解析器对该SQL语句进行语法解析,并根据解析得到的目标列名所在的真实表和虚拟表之间的关系,建立列名、虚拟表名、真实表名之间的可归约的语法树;根据可归约的语法树、目标列名和目标表名,确定待返回的列信息;根据待返回的列信息,识别用户查询的查询内容中是否包括敏感信息。
可选地,识别模块对该SQL语句进行词法解析,确定目标列名和目标表名包括:采用LALR(1)技术对该SQL语句进行语义识别,确定目标列名和目标表名。
另外,结合图1描述的本发明实施例的动态脱敏方法可以由动态脱敏设备来实现。图6示出了本发明实施例提供的动态脱敏设备的硬件结构示意图。
动态脱敏设备可以包括处理器61以及存储有计算机程序指令的存储器62。
具体地,上述处理器61可以包括中央处理器(CPU),或者特定集成电路(Application Specific Integrated Circuit,ASIC),或者可以被配置成实施本发明实施例的一个或多个集成电路。
存储器62可以包括用于数据或指令的大容量存储器。举例来说而非限制,存储器62可包括硬盘驱动器(Hard Disk Drive,HDD)、软盘驱动器、闪存、光盘、磁光盘、磁带或通用串行总线(Universal Serial Bus,USB)驱动器或者两个或更多个以上这些的组合。在合适的情况下,存储器62可包括可移除或不可移除(或固定)的介质。在合适的情况下,存储器62可在数据处理装置的内部或外部。在特定实施例中,存储器62是非易失性固态存储器。在特定实施例中,存储器62包括只读存储器(ROM)。在合适的情况下,该ROM可以是掩模编程的ROM、可编程ROM(PROM)、可擦除PROM(EPROM)、电可擦除PROM(EEPROM)、电可改写ROM(EAROM)或闪存或者两个或更多个以上这些的组合。
处理器61通过读取并执行存储器62中存储的计算机程序指令,以实现上述实施例中的任意一种动态脱敏方法。
在一个示例中,动态脱敏设备还可包括通信接口63和总线60。其中,如图6所示,处理器61、存储器62、通信接口63通过总线60连接并完成相互间的通信。
通信接口63,主要用于实现本发明实施例中各模块、装置、单元和/或设备之间的通信。
总线60包括硬件、软件或两者,将动态脱敏设备的部件彼此耦接在一起。举例来说而非限制,总线可包括加速图形端口(AGP)或其他图形总线、增强工业标准架构(EISA)总线、前端总线(FSB)、超传输(HT)互连、工业标准架构(ISA)总线、无限带宽互连、低引脚数(LPC)总线、存储器总线、微信道架构(MCA)总线、外围组件互连(PCI)总线、PCI-Express(PCI-X)总线、串行高级技术附件(SATA)总线、视频电子标准协会局部(VLB)总线或其他合适的总线或者两个或更多个以上这些的组合。在合适的情况下,总线60可包括一个或多个总线。尽管本发明实施例描述和示出了特定的总线,但本发明考虑任何合适的总线或互连。
该动态脱敏设备可以基于获取到的数据,执行本发明实施例中的动态脱敏方法。
另外,结合上述实施例中的动态脱敏方法,本发明实施例可提供一种计算机可读存储介质来实现。该计算机可读存储介质上存储有计算机程序指令;该计算机程序指令被处理器执行时实现上述实施例中的任意一种动态脱敏方法。
需要明确的是,本发明并不局限于上文所描述并在图中示出的特定配置和处理。为了简明起见,这里省略了对已知方法的详细描述。在上述实施例中,描述和示出了若干具体的步骤作为示例。但是,本发明的方法过程并不限于所描述和示出的具体步骤,本领域的技术人员可以在领会本发明的精神后,作出各种改变、修改和添加,或者改变步骤之间的顺序。
以上所述的结构框图中所示的功能块可以实现为硬件、软件、固件或者它们的组合。当以硬件方式实现时,其可以例如是电子电路、专用集成电路(ASIC)、适当的固件、插件、功能卡等等。当以软件方式实现时,本发明的元素是被用于执行所需任务的程序或者代码段。程序或者代码段可以存储在机器可读介质中,或者通过载波中携带的数据信号在传输介质或者通信链路上传送。“机器可读介质”可以包括能够存储或传输信息的任何介质。机器可读介质的例子包括电子电路、半导体存储器设备、ROM、闪存、可擦除ROM(EROM)、软盘、CD-ROM、光盘、硬盘、光纤介质、射频(RF)链路,等等。代码段可以经由诸如因特网、内联网等的计算机网络被下载。
还需要说明的是,本发明中提及的示例性实施例,基于一系列的步骤或者装置描述一些方法或系统。但是,本发明不局限于上述步骤的顺序,也就是说,可以按照实施例中提及的顺序执行步骤,也可以不同于实施例中的顺序,或者若干步骤同时执行。
以上所述,仅为本发明的具体实施方式,所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、模块和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。应理解,本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。
Claims (8)
1.一种动态脱敏方法,其特征在于,所述方法包括:
在用户查询的查询内容中存在敏感信息的情况下,获取所述用户在查询所述查询内容之前的操作信息;
根据所述操作信息与所述用户的当前操作信息的关系,判断是否对所述敏感信息进行脱敏处理;
其中,根据所述操作信息与所述用户的当前操作信息的关系,判断是否对所述敏感信息进行脱敏处理包括:
确定所述操作信息与所述当前操作信息之间的语义映射关系,所述当前操作信息是指所述用户在查询所述查询内容时所使用的SQL语句对应的操作信息;
在所述语义映射关系为强相关关系的情况下,确定不对所述敏感信息进行脱敏处理;否则,确定对所述敏感信息进行脱敏处理。
2.根据权利要求1所述的方法,其特征在于,确定所述操作信息与所述当前操作信息之间的语义映射关系包括:
判断所述操作信息中最近的两个操作之间是否为预设关联关系;
在判断到所述两个操作之间不为所述预设关联关系的情况下,确定所述操作信息与所述当前操作信息之间的语义映射关系为强相关关系;否则,确定所述操作信息与所述当前操作信息之间的语义映射关系为非强相关关系。
3.根据权利要求1所述的方法,其特征在于,确定所述操作信息与所述当前操作信息之间的语义映射关系包括:
判断所述操作信息中最近的两个操作之间是否为预设关联关系,以及判断所述用户在所述两个操作中的前一个操作对应的操作页面停留的时间是否超过预设时长;
在判断到所述两个操作之间不为所述预设关联关系且所述用户在所述两个操作中的前一个操作对应的操作页面停留的时间超过预设时长的情况下,确定所述操作信息与所述当前操作信息之间的语义映射关系为强相关关系;否则,确定所述操作信息与所述当前操作信息之间的语义映射关系为非强相关关系。
4.根据权利要求1至3中任一项所述的方法,其特征在于,在获取所述用户在查询所述查询内容之前的操作信息之前,所述方法还包括:
获取所述用户查询所述查询内容时所使用的SQL语句;
对该SQL语句进行词法解析,确定目标列名和目标表名;
通过语法解析器对该SQL语句进行语法解析,并根据解析得到的目标列名所在的真实表和虚拟表之间的关系,建立列名、虚拟表名、真实表名之间的可归约的语法树;
根据所述可归约的语法树、所述目标列名和所述目标表名,确定待返回的列信息;
根据所述待返回的列信息,识别用户查询的查询内容中是否包括敏感信息。
5.根据权利要求4所述的方法,其特征在于,对该SQL语句进行词法解析,确定目标列名和目标表名包括:
采用LALR(1)技术对该SQL语句进行语义识别,确定目标列名和目标表名。
6.一种动态脱敏装置,其特征在于,所述装置包括:
获取模块,用于在用户查询的查询内容中存在敏感信息的情况下,获取所述用户在查询所述查询内容之前的操作信息;
判断模块,用于根据所述操作信息与所述用户的当前操作信息的关系,判断是否对所述敏感信息进行脱敏处理;确定操作信息与当前操作信息之间的语义映射关系,当前操作信息是指用户在查询查询内容时所使用的SQL语句对应的操作信息;在语义映射关系为强相关关系的情况下,确定不对敏感信息进行脱敏处理;否则,确定对敏感信息进行脱敏处理。
7.一种动态脱敏设备,其特征在于,包括:至少一个处理器、至少一个存储器以及存储在所述存储器中的计算机程序指令,当所述计算机程序指令被所述处理器执行时实现如权利要求1-5中任一项所述的方法。
8.一种计算机可读存储介质,其上存储有计算机程序指令,其特征在于,当所述计算机程序指令被处理器执行时实现如权利要求1-5中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711337154.XA CN110019377B (zh) | 2017-12-14 | 2017-12-14 | 动态脱敏方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711337154.XA CN110019377B (zh) | 2017-12-14 | 2017-12-14 | 动态脱敏方法、装置、设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110019377A CN110019377A (zh) | 2019-07-16 |
CN110019377B true CN110019377B (zh) | 2021-10-26 |
Family
ID=67186911
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711337154.XA Active CN110019377B (zh) | 2017-12-14 | 2017-12-14 | 动态脱敏方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110019377B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113051601B (zh) * | 2019-12-27 | 2024-05-03 | 中移动信息技术有限公司 | 敏感数据识别方法、装置、设备和介质 |
CN111767300B (zh) * | 2020-05-11 | 2022-06-07 | 全球能源互联网研究院有限公司 | 一种电力数据内外网穿透的动态脱敏方法及装置 |
CN112765658A (zh) * | 2021-01-15 | 2021-05-07 | 杭州数梦工场科技有限公司 | 一种数据脱敏方法、装置及电子设备和存储介质 |
EP4432117A1 (en) * | 2021-11-30 | 2024-09-18 | Siemens Aktiengesellschaft | Data model generation method and apparatus |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106033461A (zh) * | 2015-03-19 | 2016-10-19 | 阿里巴巴集团控股有限公司 | 敏感信息的查询方法和装置 |
CN106548085A (zh) * | 2015-09-17 | 2017-03-29 | 中国移动通信集团甘肃有限公司 | 一种数据的处理方法及装置 |
CN106599713A (zh) * | 2016-11-11 | 2017-04-26 | 中国电子科技网络信息安全有限公司 | 一种基于大数据的数据库脱敏系统及方法 |
CN106611129A (zh) * | 2016-12-27 | 2017-05-03 | 东华互联宜家数据服务有限公司 | 数据脱敏方法、装置及系统 |
CN107315972A (zh) * | 2017-06-01 | 2017-11-03 | 北京明朝万达科技股份有限公司 | 一种大数据非结构化文件动态脱敏方法及系统 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7315859B2 (en) * | 2000-12-15 | 2008-01-01 | Oracle International Corp. | Method and apparatus for management of encrypted data through role separation |
US8135948B2 (en) * | 2006-01-27 | 2012-03-13 | Imperva, Inc. | Method and system for transparently encrypting sensitive information |
CN103853985B (zh) * | 2012-12-05 | 2017-01-18 | 中国移动通信集团黑龙江有限公司 | 数据加密方法、解密方法及装置 |
CN106295388B (zh) * | 2015-06-04 | 2019-09-10 | 中国移动通信集团山东有限公司 | 一种数据脱敏方法和装置 |
CN106778288B (zh) * | 2015-11-24 | 2019-08-09 | 阿里巴巴集团控股有限公司 | 一种数据脱敏的方法及系统 |
-
2017
- 2017-12-14 CN CN201711337154.XA patent/CN110019377B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106033461A (zh) * | 2015-03-19 | 2016-10-19 | 阿里巴巴集团控股有限公司 | 敏感信息的查询方法和装置 |
CN106548085A (zh) * | 2015-09-17 | 2017-03-29 | 中国移动通信集团甘肃有限公司 | 一种数据的处理方法及装置 |
CN106599713A (zh) * | 2016-11-11 | 2017-04-26 | 中国电子科技网络信息安全有限公司 | 一种基于大数据的数据库脱敏系统及方法 |
CN106611129A (zh) * | 2016-12-27 | 2017-05-03 | 东华互联宜家数据服务有限公司 | 数据脱敏方法、装置及系统 |
CN107315972A (zh) * | 2017-06-01 | 2017-11-03 | 北京明朝万达科技股份有限公司 | 一种大数据非结构化文件动态脱敏方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN110019377A (zh) | 2019-07-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110019377B (zh) | 动态脱敏方法、装置、设备及介质 | |
US10777192B2 (en) | Method and apparatus of recognizing field of semantic parsing information, device and readable medium | |
CN111339531B (zh) | 恶意代码的检测方法、装置、存储介质及电子设备 | |
CN111314063A (zh) | 一种基于物联网大数据信息管理方法、系统及装置 | |
CN114900546B (zh) | 一种数据处理方法、装置、设备及可读存储介质 | |
CN109726555B (zh) | 病毒检测处理方法、病毒提示方法以及相关设备 | |
CN109871685B (zh) | 一种rtf文件的解析方法及装置 | |
CN113051601B (zh) | 敏感数据识别方法、装置、设备和介质 | |
CN113141332B (zh) | 一种命令注入识别方法、系统、设备及计算机存储介质 | |
CN117610073A (zh) | 一种数据脱敏方法、装置、电子设备以及存储介质 | |
CN113032836B (zh) | 数据脱敏方法和装置 | |
CN116257850A (zh) | 一种病毒文件识别方法、装置、存储介质及电子设备 | |
CN114531340B (zh) | 日志获取方法、装置、电子设备、芯片及存储介质 | |
CN113220949B (zh) | 一种隐私数据识别系统的构建方法及装置 | |
CN112488562B (zh) | 一种业务实现方法及装置 | |
KR20160034471A (ko) | 문자메시지와 소셜네트워크 서비스를 활용한 지역별 실시간 핫이슈 추출 방법 | |
CN110245308B (zh) | 图像提取方法、装置及终端设备 | |
CN112256820B (zh) | 一种文档定位方法及装置 | |
CN109033070B (zh) | 一种数据处理方法、服务器及计算机可读介质 | |
CN109246614B (zh) | 一种红包发送方法、装置、可穿戴设备及存储介质 | |
CN104050191A (zh) | 对推广信息进行监控的方法和设备 | |
CN105989501B (zh) | 一种查询咨询账户的方法及装置 | |
CN113138999B (zh) | 数据处理方法及装置、计算机存储介质、电子设备 | |
KR102274055B1 (ko) | 메시지 시스템 및 애플리케이션 활성화 방법과 이를 수행하기 위한 사용자 단말 | |
CN118802233A (zh) | 终端安全态势确定方法、装置、设备及介质 |
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 |