CN114372276A - 一种数据安全防护方法、装置、电子设备及存储介质 - Google Patents
一种数据安全防护方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN114372276A CN114372276A CN202111531542.8A CN202111531542A CN114372276A CN 114372276 A CN114372276 A CN 114372276A CN 202111531542 A CN202111531542 A CN 202111531542A CN 114372276 A CN114372276 A CN 114372276A
- Authority
- CN
- China
- Prior art keywords
- client
- query result
- information
- sql statement
- statement
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 63
- 238000012545 processing Methods 0.000 claims abstract description 22
- 230000000903 blocking effect Effects 0.000 claims description 37
- 238000012217 deletion Methods 0.000 claims description 16
- 230000037430 deletion Effects 0.000 claims description 16
- 238000003780 insertion Methods 0.000 claims description 8
- 230000037431 insertion Effects 0.000 claims description 8
- 238000000586 desensitisation Methods 0.000 description 18
- 230000008569 process Effects 0.000 description 14
- 230000004048 modification Effects 0.000 description 9
- 238000012986 modification Methods 0.000 description 9
- 238000012360 testing method Methods 0.000 description 8
- 238000007792 addition Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 238000012795 verification Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 2
- 101100217298 Mus musculus Aspm gene Proteins 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000000873 masking effect Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
Images
Classifications
-
- 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/602—Providing cryptographic facilities or services
-
- 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/2455—Query execution
-
- 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/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
-
- 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
-
- 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
- G06F21/6254—Protecting personal data, e.g. for financial or medical purposes by anonymising data, e.g. decorrelating personal data from the owner's identification
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Medical Informatics (AREA)
- Storage Device Security (AREA)
Abstract
本申请提供一种数据安全防护方法、装置、电子设备及存储介质。该方法包括:获取客户端的权限信息和第一SQL语句,第一SQL语句包括语句类型和字段,字段中包括加密字段;若所述语句类型为查询类型,基于第一SQL语句从目标数据库中进行查询,获得查询结果,查询结果包括加密字段对应的加密数据;根据权限信息对查询结果进行处理,获得目标查询结果;将目标查询结果返回客户端。通过根据获取的客户端权限信息对SQL语句查询到的查询结果进行处理,从而实现了不同用户权限的数据安全访问,提供了更为安全的数据安全防护手段。
Description
技术领域
本申请涉及数据安全领域,具体而言,涉及一种数据安全防护方法、装置、电子设备及存储介质。
背景技术
随着信息科技手段的进步,人们对于信息安全也愈发重视,一旦数据库中保存的隐私数据发生泄露,后果不堪设想,因此对于数据库安全的防护要求越来越高。
目前的安全防护手段有数据库防火墙,用户可以通过防火墙访问数据库,阻止越权操作,但一些攻击者能够绕过数据库防火墙从而直接连接数据库获取数据,导致隐私数据泄露。
发明内容
本申请实施例的目的在于提供一种数据安全防护方法、装置、电子设备及存储介质,用以提高数据安全的防护。
第一方面,本申请实施例提供一种数据安全防护方法,包括:获取客户端的权限信息和第一SQL语句,所述第一SQL语句包括语句类型和字段,所述字段中包括加密字段;若所述语句类型为查询类型,基于所述第一SQL语句从目标数据库中进行查询,获得查询结果,所述查询结果包括所述加密字段对应的加密数据;根据所述权限信息对所述查询结果进行处理,获得目标查询结果;将所述目标查询结果返回所述客户端。
本申请实施例中,通过获取客户端的权限信息和第一SQL语句,判断若语句类型为查询类型的情况下,基于第一SQL语句从目标数据库中进行查询,从而获得查询结果,由于字段中包括加密字段,查询结果中包括加密字段对应的加密数据,然后通过权限信息对查询结果进行处理,获得目标查询结果,最后将目标查询结果返回至客户端,从而实现了在查询结果包含加密数据的情况下,客户端根据权限信息返回查询结果数据,提供了更为安全的数据防护手段,有效防止了数据文件的泄露问题。
进一步地,所述根据所述权限信息对所述查询结果进行处理,获得目标查询结果,包括:根据所述权限信息判断所述客户端是否具有查看权限;若具有所述查看权限,根据所述加密字段对应的密钥对所述查询结果中的加密数据进行解密,获得目标查询结果;若不具有所述查看权限,则将所述查询结果作为所述目标查询结果。
本申请实施例中,通过权限信息可以判断客户端是否具有查看权限,当客户端具有查看权限时,可以通过加密字段对应的密钥对查询结果中的加密数据进行解密,从而获得目标查询结果,当客户端不具有查看权限时,可以将查询结果直接作为目标查询结果,不作任何处理,通过客户端根据查看权限判断是否对查询结果进行解密处理,从而实现了客户端有权限时查看明文结果,无权限时查看密文结果,从而保证数据的安全性。
进一步地,所述第一SQL语句中还包括所述加密字段对应的值,所述方法还包括:判断所述第一SQL语句中所述加密字段对应的值是否符合所述加密字段的数据类型要求;若所述加密字段对应的值不符合所述数据类型要求,对所述第一SQL语句进行阻断,获得阻断信息,并向所述客户端发送所述阻断信息。
本申请实施例中,由于第一SQL语句中还包括加密字段对应的值,首先判断第一SQL语句中加密字段对应的值是否符合加密字段的数据类型要求,若加密字段对应的值不符合数据类型要求,则对所述第一SQL语句进行阻断,并将阻断信息发送给客户端,从而实现了代理端在数据库操作前的数据格式校验过程,避免了对数据库的无效操作。
进一步地,所述基于所述第一SQL语句从目标数据库中进行查询,获得查询结果,包括:若所述加密字段对应的值符合所述数据类型要求,且所述语句类型为查询类型,根据所述加密字段对应的加密算法对所述第一SQL语句中所述加密字段对应的值进行加密,获得第二SQL语句;根据所述第二SQL语句从所述目标数据库中查询,获得查询结果。
本申请实施例中,通过根据加密字段对应加密算法可以对第一SQL语句中加密字段对应的值进行加密,从而可以对第一SQL语句进行改写,获得第二SQL语句,然后根据第二SQL语句从目标数据库中进行查询,获得查询结果,从而根据实现根据加密算法对SQL语句的改写工作,获得加密查询值对应的查询结果。
进一步地,所述方法还包括:若所述加密字段对应的值符合所述数据类型要求,且所述语句类型为操作类型,根据所述权限信息判断所述客户端是否具有对应的操作权限,所述操作类型包括插入、删除或更新;当所述客户端具有对应的操作权限,根据所述加密字段对应的加密算法对所述第一SQL语句中所述加密字段对应的值进行加密,获得第三SQL语句;利用所述第三SQL语句在目标数据库中进行操作,获得操作结果,并向所述客户端返回所述操作结果;当所述客户端不具有对应的操作权限,则对所述第一SQL语句进行阻断,获得阻断信息,并向所述客户端发送所述阻断信息。
本申请实施例中,通过权限信息可以判断客户端时候具有该操作类型对应的操作权限,若客户端具有对应的操作权限,则根据加密字段对应的加密算法对第一SQL语句中加密字段对应的操作值进行加密,获得第三SQL语句,从而可以利用第三SQL语句在目标数据库中操作,获得操作结果,并将操作结果返回客户端,若客户端不具有对应的操作权限,则可以对该第一SQL语句进行阻断,生成阻断信息,并将该阻断信息返回客户端。在语句类型为操作类型的情况下,通过权限信息来判断执行不同的操作信息,从而实现了数据的安全操作,保证了数据的安全性。
进一步地,所述字段还包括敏感字段,在所述获取客户端的权限信息和第一SQL语句之后,所述方法还包括:若所述语句类型为查询类型且所述客户端不具有查看权限,根据所述敏感字段对应的敏感算法对所述第一SQL语句进行改写,获得第四SQL语句;根据所述第四SQL语句从所述目标数据库中进行查询,获得脱敏查询结果;将所述脱敏查询结果返回所述客户端。
本申请实施例中,由于字段中包括敏感字段,当语句类型为查询类型且客户端不具有查看权限,根据敏感字段对应的敏感算法对SQL语句进行改写,获得第四SQL语句,然后根据第四SQL语句从目标数据库中进行查询,获得脱敏查询结果,并将脱敏查询结果返回客户端。在语句类型为查看类型且客户端不具有查看权限的情况下,通过敏感数据对应的敏感算法对SQL语句进行改写,并将改写后的SQL语句发往数据库查询,从而实现了敏感数据的脱敏处理。
进一步地,在获取客户端的权限信息和第一SQL语句之前,所述方法还包括:接收客户端的登录请求;对所述登录请求进行验证,获得所述客户端的用户信息;根据所述用户信息确定所述客户端的权限信息,所述权限信息包括对目标数据库的查看权限和操作权限。
本申请实施例中,通过接收客户端的登录请求,根据该登录请求进行验证,从而获得客户端的用户信息,然后通过用户信息可以确定客户端的权限信息。通过对客户端的登录请求进行验证从而实现了客户端权限信息的获取,保证了客户端权限信息的正确。
进一步地,所述方法还包括:添加数据库的数据资产信息,所述数据资产信息包括数据库连接信息、代理IP和代理端口;根据所述数据资产信息为所述数据库配置对应的黑白名单、访问时间段和权限信息;在所述数据库中配置加密信息和敏感信息,所述加密信息包括加密表、加密字段、加密算法和密钥,所述敏感信息包括敏感字段和敏感算法。
本申请实施例中,通过添加数据库的数据资产信息来实现对数据库的配置,该数据资产信息包括数据库连接信息、代理IP和代理端口,根据数据资产信息可以配置该数据库对应的黑白名单、访问时间段和权限信息,还可以实现对数据库内的表结构的配置,包括加密信息和敏感信息,加密信息包括加密表、加密字段、加密算法以及密钥的配置,敏感信息包括敏感字段和敏感算法的配置。通过添加数据资产方面的信息可以实现对数据库的相关配置,从而实现客户端的登录请求验证和访问权限设置。
进一步地,所述方法还包括:若所述语句类型为建表语句且所述客户端具有对应的权限信息,将所述第一SQL语句向所述目标数据库发送,获得执行结果;将所述执行结果返回客户端。若所述语句类型为删库语句,对所述第一SQL语句进行阻断,获得阻断信息;将所述阻断信息返回客户端。
本申请实施例中,当语句类型为建表语句且客户端具有对应的权限信息时,将第一SQL语句向所述目标数据库发送,获得执行结果,当语句类型为删库语句时,考虑到目标数据库的安全性,将直接对SQL语句进行阻断,从而提高了数据的安全性,防止误删。
第二方面,本申请实施例一种数据安全防护装置,所述装置包括:获取模块,用于获取客户端的权限信息和第一SQL语句,所述第一SQL语句包括语句类型和字段,所述字段中包括加密字段;查询模块,用于若所述语句类型为查询类型,基于所述第一SQL语句从目标数据库中进行查询,获得查询结果,所述查询结果包括所述加密字段对应的加密数据;处理模块,用于根据所述权限信息对所述查询结果进行处理,获得目标查询结果;发送模块,用于将所述目标查询结果返回所述客户端。
第三方面,本申请实施例提供一种电子设备,包括:处理器、存储器和总线,其中,所述处理器和所述存储器通过所述总线完成相互间的交互;
所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行第一方面的方法。
第四方面,本申请实施例提供一种计算机可读存储介质,包括:
所述计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行第一方面的方法。
本申请的其他特征和优点将在随后的说明书阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请实施例了解。本申请的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的一种数据安全防护方法流程示意图;
图2为本申请实施例提供的一种数据安全防护装置结构示意图;
图3为本申请实施例提供的电子设备实体结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
图1为本申请实施例提供的一种数据安全防护方法流程示意图,如图1所示,该方法可以应用于与数据库相连的服务端,服务端具有代理端和管理端,代理端为数据库外层的防护端,是在数据库防火墙的基础上对数据库进行防护,能够根据权限信息对客户端发送的数据请求作出相应的处理,从而提供数据防护作用,管理端用于实现数据库的管理功能,例如添加数据资产、配置规则和数据加密等功能。该方法包括:
步骤101:获取客户端的权限信息和第一SQL语句,所述第一SQL语句包括语句类型和字段,所述字段中包括加密字段。
在具体的实施过程中,客户端可以为用户登录的终端设备,其中终端设备具体可以为智能手机、平板电脑、计算机、个人数字助理(Personal Digital Assitant,PDA)等,本申请不对客户端的具体终端设备进行限定。权限信息可以为查看权限和操作权限,例如加密数据的查看权限以及操作权限,本申请不对权限信息的具体种类进行限定。第一SQL语句为客户端发送的用于访问和操作数据库的语句,包括语句类型和字段,语句类型可以为查询语句或操作语句,查询语句用于查询数据库中的数据,例如查询语句可以为:selectname from stu where id=1,操作语句用于对数据库中的数据进行增删改等相关操作。字段为数据库表结构的列名,例如在student表中id和name均为列名,字段中还包括加密字段,加密字段为数据库中预先配置的加密表中的加密字段,该加密字段中保存的值在数据库中通过密文的方式进行存储,可以有效提高加密字段对应值的安全性。
步骤102:若所述语句类型为查询类型,基于所述第一SQL语句从目标数据库中进行查询,获得查询结果,所述查询结果包括所述加密字段对应的加密数据。
在具体的实施过程中,当语句类型为查询类型时,根据第一SQL语句可以从目标数据库中进行查询,获得目标数据库的查询结果,而字段中包括加密字段,加密字段在数据库中以密文的形式保存,查询结果中包括加密字段对应的加密数据。
步骤103:根据所述权限信息对所述查询结果进行处理,获得目标查询结果。
在具体的实施过程中,权限信息可以为客户端的查看权限有无信息,处理的方式可以为查询结果解密或者直接放行,从而可以根据客户端的权限信息进行显示,例如当客户端具有该加密数据的查看权限,则可以显示为明文查询结果,当客户端不具有该加密数据的查看权限时,则可以显示为密文查询结果。即使一些数据库攻击者或者高权限例如DBA数据库管理员能够绕过该代理端直接登录数据库查看所有数据,此时不涉及是否具有权限都可查看,但由于此时加密字段的数据在数据库中是密文存储,故无法获得明文数据;同样,攻击者虽然可以通过数据库拖库等手段获取数据,但只有未加密字段数据是明文数据,加密字段数据仍然是密文数据,不会发生数据泄露问题。
步骤104:将所述目标查询返回所述客户端。
在具体的实施过程中,目标查询结果可以为经过代理端处理后的返回数据,可以通过网络的形式返回至客户端进行显示,本申请不对返回的方式进行限定。
在上述实施例的基础上,所述根据所述权限信息对所述查询结果进行处理,获得目标查询结果,包括:
根据所述权限信息判断所述客户端是否具有查看权限;
若具有所述查看权限,根据所述加密字段对应的密钥对所述查询结果中的加密数据进行解密,获得目标查询结果;
若不具有所述查看权限,则将所述查询结果作为所述目标查询结果。
在具体的实施方式中,密钥可以为加密字段在数据库中的加密数据对应的解密方式,在数据库中进行预先配置,然后采用该加密字段对应的密钥进行解密后才能看到真实数据,从而保护了数据的私密性。当客户端具有查看权限时,则根据该加密字段对应的密钥对查询结果进行解密,从而得到明文查询数据。而当客户端不具有查看权限时,则直接将查询结果作为目标查询结果进行返回,也就是返回密文查询结果,并不会对数据产生泄露。
在上述实施例的基础上,所述第一SQL语句中还包括所述加密字段对应的值,所述方法还包括:
判断所述第一SQL语句中所述加密字段对应的值是否符合所述加密字段的数据类型要求;
若所述加密字段对应的值不符合所述数据类型要求,对所述第一SQL语句进行阻断,获得阻断信息,并向所述客户端发送所述阻断信息。
在具体的实施过程中,在第一SQL语句中包括加密字段对应的值时,代理端会根据字段类型对该字段的值进行校验,为了保证数据的正确性,例如当插入或更新的值不符合该字段类型的要求时,代理端将阻断该语句。示例如下:若有修改权限的用户请求语句为update test.stu set name=‘zhaoqiansunli’where id=1;其中,id为主键,name为加密字段,该字段值的类型为varchar,数据的最大长度为10,因‘zhaoqiansunli’中字符数量大于10个,所以该语句不满足对应的字段的数据类型要求,因此被阻断。对于字符串类型的校验主要针对字符数量或者所占字节数进行校验,对应不同的数据库,数据格式的要求不同,本申请不对具体数据库的数据类型要求进行限定。针对不同的数据类型采用不同的校验方式,如对于整型数据,主要校验数据是否超过该类型的表示范围,对于日期或时间类型,主要校验数据格式是否符合要求,内容是否合法,如日期类型数据2001-12-32是不合法的。可以实现对整型、字符串类型、时间类型和日期类型等常用数据类型的校验。代理端的数据类型校验根据所代理的数据库对该类型的要求进行。
在上述实施例的基础上,所述基于所述第一SQL语句从目标数据库中进行查询,获得查询结果,包括:
若所述加密字段对应的值符合所述数据类型要求,且所述语句类型为查询类型,根据所述加密字段对应的加密算法对所述第一SQL语句中所述加密字段对应的值进行加密,获得第二SQL语句;
根据所述第二SQL语句从所述目标数据库中查询,获得查询结果。
在具体的实施过程中,当语句类型为查询语句时,将第一SQL语句中的加密字段对应的值作为查询条件去目标数据库中进行匹配,因此对于加密字段对应的值需要进行加密后才能去加密表中匹配到密文查询结果,不同加密表可以对应不同的加密算法,同一个加密表中的加密字段的加密算法相同,加密算法可以为MD5算法、SHA1算法、DES加密算法或SM4国密算法,本申请不对加密算法的种类进行限定。例如当查询语句为:查询姓名为张三的个人信息,而姓名作为加密字段在个人信息表进行保存,对应该字段在表结构中对应的值均进行加密处理后保存,因此在查询的过程中需要对SQL语句进行改写,将加密字段对应的值进行加密后获得改写后的SQL语句,再将改写后的SQL语句发送到数据库中进行查询,从而能够获得查询结果。
在上述实施例的基础上,所述方法还包括:
若所述加密字段对应的值符合所述数据类型要求,且所述语句类型为操作类型,根据所述权限信息判断所述客户端是否具有对应的操作权限,所述操作类型包括插入、删除或更新;
当所述客户端具有对应的操作权限,根据所述加密字段对应的加密算法对所述第一SQL语句中所述加密字段对应的值进行加密,获得第三SQL语句;
利用所述第三SQL语句在目标数据库中进行操作,获得操作结果,并向所述客户端返回所述操作结果;
当所述客户端不具有对应的操作权限,则对所述第一SQL语句进行阻断,获得阻断信息,并向所述客户端发送所述阻断信息。
在具体的实施过程中,操作类型可以为数据库的基本操作类型,包括插入、删除或更新,不同的操作类型对应不同的操作权限,例如客户端A可以具有加密字段name的增加和修改权限,但不具有name的删除权限,则对应语句的操作类型为删除时,则对该SQL语句进行阻断,而对应增加和修改类型则可以进行相关的操作。每个客户端还可以拥有不同的字段的操作权限,本申请不对客户端的不同字段的操作权限进行限定。
若客户端具有对应的操作权限,则根据加密字段对应的加密算法对SQL语句进行改写,然后在目标数据库中进行操作,获得操作结果,该操作结果可以为操作成功与否的结果,例如操作类型为插入时,如果在目标数据库中插入成功,则向客户端发送一条插入成功的消息,若失败则发送插入失败的消息。当客户端不具有对应的操作权限时,则对该SQL语句进行阻断,并将阻断信息发送至客户端。以下面一种实施方式为例:若有增加权限的用户请求语句为insert into test.stu(id,name,age)values(1,‘zhao’,13);其中,id为主键,name和age为加密字段,‘zhao’和13为待插入的值。经加密、改写后,SQL语句变为insertinto test.stu(id,name,age)values(1,‘ikIN7DdIk4aE’,‘EiW1cjSE9ntQ’);其中,‘ikIN7DdIk4aE’和‘ikIN7DdIk4aE’分别是‘zhao’和13经信封加密后的值。
在上述实施例的基础上,所述字段还包括敏感字段,在所述获取客户端的权限信息和第一SQL语句之后,所述方法还包括:
若所述语句类型为查询类型且所述客户端不具有查看权限,根据所述敏感字段对应的敏感算法对所述第一SQL语句进行改写,获得第四SQL语句;
根据所述第四SQL语句从所述目标数据库中进行查询,获得脱敏查询结果;
将所述脱敏查询结果返回所述客户端。
在具体的实施过程中,敏感字段可以为客户的一些安全数据,通过数据库的脱敏算法可以对真实数据进行改造来提供使用,例如手机号和卡号。当客户端不具有该敏感字段信息的查看权限时,可以对该敏感数据进行脱敏处理,不同的敏感字段可以配置不用的脱敏算法,脱敏算法的种类包括置空、遮蔽或仿真,本申请不对脱敏算法的种类进行限定。当语句类型为查询类型时且客户端不具有查看权限时,可以根据敏感字段对应的敏感算法对SQL语句进行改写,然后根据改写后的SQL语句从目标数据库中进行查询,获得脱敏查询结果。例如电话号码为10010001000,通过遮蔽脱敏后的数据为100****1000。
在上述实施例的基础上,在获取客户端的权限信息和第一SQL语句之前,所述方法还包括:
接收客户端的登录请求;
对所述登录请求进行验证,获得所述客户端的用户信息;
根据所述用户信息确定所述客户端的权限信息,所述权限信息包括对目标数据库的查看权限和操作权限。
在具体的实施过程中,代理端代理的是数据库,当用户访问数据库时,先将请求由代理端发送至数据库,数据库再将结果返回给代理端,再由代理端返回给用户,在接收到用户的登录请求时,经过协议解析,代理端可以获取到用户名、IP地址、端口、时间和具体的SQL语句等信息,通过用户名、IP地址、端口和时间可以对用户请求进行验证,从而得到客户端的权限信息,例如通过用户名和IP地址可以判断该用户是否为授权用户,以及用户具有的权限信息。
在上述实施例的基础上,所述方法还包括:
添加数据库的数据资产信息,所述数据资产信息包括数据库连接信息、代理IP和代理端口;
根据所述数据资产信息为所述数据库配置对应的黑白名单、访问时间段和权限信息;
在所述数据库中配置加密信息和敏感信息,所述加密信息包括加密表、加密字段、加密算法和密钥,所述敏感信息包括敏感字段和敏感算法。
在具体的实施过程中,管理端主要用于添加数据资产、配置规则和数据加密等功能,例如客户端可以通过管理端添加数据资产,所谓资产,即想要访问的数据库相关信息、代理ip和代理端口,其中数据库信息包括数据库ip、端口号、用户名、密码、数据库类型和版本等等;例如数据资产可以为:添加数据资产,内容包括数据库为mysql数据库192.168.1.1:3306,版本为5.7,用户为root,密码为123456,代理ip为192.168.2.2,代理端口为14000。
配置黑白名单及自定义规则,即配置可以访问某资产的用户名及ip段、可以访问资产的时间段、可以访问操作的表、允许操作的类型等;配置的规则可以为在星期一到星期五的8:00~18:00之间ip范围在0.0.0.0~255.255.255.255内的数据库的root用户有对该数据库的test.stu表的查询权限,但没有对test.stu表的增、删、改权限。例如:若192.168.1.1:3306的root用户通过代理在星期一10:00访问test.stu,规则匹配成功,则该用户为授权用户;若root用户通过代理在星期一20:00访问test.stu,规则匹配失败,此时该用户为非授权用户;若root用户通过代理在星期一10:00删除test.stu的某条记录,规则匹配失败,此时该用户为非授权用户。
配置敏感数据类型、脱敏算法、需要脱敏的表等,脱敏算法有置空、遮蔽、仿真等等。配置加密表、加密字段、加密算法和密钥,加密算法如国密算法SM4,配置后对数据库中需要加密的数据进行加密,将原始数据即明文数据转为密文存储,即存量加密。具体示例如下:选择对test.stu表的age列的数据采用SM4算法进行加密,例如age的原始数据(明文数据)为18,加密后数据为一串没有明确意义的字符,如kSqRVeST9K7b。
在上述实施例的基础上,所述方法还包括:
若所述语句类型为建表语句且所述客户端具有对应的权限信息,将所述第一SQL语句向所述目标数据库发送,获得执行结果;
将所述执行结果返回客户端。
若所述语句类型为删库语句,对所述第一SQL语句进行阻断,获得阻断信息;
将所述阻断信息返回客户端。
在具体的实施过程中,语句类型除了上述的数据库基本操作语句例如增删改查,还包括对数据库表的操作语句,例如建表语句和删库语句,若为建表语句,当客户端具有对应的操作权限时,将建表语句进行放行,发送至目标数据库获得执行结果,当语句类型为删库语句时,为了保证数据库的安全,此时直接将该删库语句进行阻断,获得阻断信息,并将阻断信息返回客户端。如删除数据库表的某一列语句,用户的请求语句为alter tabletest.stu drop column name;其中,test.stu为加密表,name为其中某一列,则将该语句进行阻断。
图2为本申请实施例提供的数据安全防护装置的结构示意图,该装置可以是电子设备上的模块、程序段或代码。应理解,该装置与上述图1方法实施例对应,能够执行图1方法实施例涉及的各个步骤,该装置具体的功能可以参见上文中的描述,为避免重复,此处适当省略详细描述。本申请实施例提供了一种数据安全防护装置,该装置包括:
获取模块201,用于获取客户端的权限信息和第一SQL语句,所述第一SQL语句包括语句类型和字段,所述字段中包括加密字段;
查询模块202,用于若所述语句类型为查询类型,基于所述第一SQL语句从目标数据库中进行查询,获得查询结果,所述查询结果包括所述加密字段对应的加密数据;
处理模块203,用于根据所述权限信息对所述查询结果进行处理,获得目标查询结果;
发送模块204,用于将所述目标查询结果返回所述客户端。
在上述实施例的基础上,处理模块203具体用于:
根据所述权限信息判断所述客户端是否具有查看权限;
若具有所述查看权限,根据所述加密字段对应的密钥对所述查询结果中的加密数据进行解密,获得目标查询结果;
若不具有所述查看权限,则将所述查询结果作为所述目标查询结果。
在上述实施例的基础上,所述第一SQL语句中还包括所述加密字段对应的查询值;
在上述实施例的基础上,查询模块202具体用于:
根据所述加密字段对应的加密算法对所述第一SQL语句中所述加密字段对应的查询值进行加密,获得第二SQL语句;
根据所述第二SQL语句从所述目标数据库中查询,获得查询结果。
在上述实施例的基础上,所述第一SQL语句中还包括所述加密字段对应的操作值;
在上述实施例的基础上,该装置还包括操作模块,用于:
若所述语句类型为操作类型,根据所述权限信息判断所述客户端是否具有对应的操作权限,所述操作类型包括增加、删除或修改;
若所述客户端具有对应的操作权限,根据所述加密字段对应的加密算法对所述第一SQL语句中所述加密字段对应的值进行加密,获得第三SQL语句,利用所述第三SQL语句在目标数据库中进行操作,获得操作结果;
将所述操作结果向所述客户端发送;
若所述客户端不具有对应的操作权限,则对所述第一SQL语句进行阻断,获得阻断信息;
将所述阻断信息向所述客户端发送。
在上述实施例的基础上,所述字段还包括敏感字段;
在上述实施例的基础上,该装置还包括敏感查询模块,用于:
若所述语句类型为查询类型且所述客户端不具有查看权限,根据所述敏感字段对应的敏感算法对所述第一SQL语句进行改写,获得第四SQL语句;
根据所述第四SQL语句从所述目标数据库中进行查询,获得脱敏查询结果;
将所述脱敏查询结果返回所述客户端。
在上述实施例的基础上,该装置还包括接收登录确认模块,用于:
接收客户端的登录请求;
对所述登录请求进行验证,获得所述客户端的用户信息;
根据所述用户信息确定所述客户端的权限信息,所述权限信息包括对目标数据库的查看权限和操作权限。
在上述实施例的基础上,该装置还包括管理模块,用于:
添加数据库的数据资产信息,所述数据资产信息包括数据库连接信息、代理IP和代理端口;
根据所述数据资产信息为所述数据库配置对应的黑白名单、访问时间段和权限信息;
在所述数据库中配置加密信息和敏感信息,所述加密信息包括加密表、加密字段、加密算法和密钥,所述敏感信息包括敏感字段和敏感算法。
在上述实施例的基础上,该装置还包括库表操作模块,用于:
若所述语句类型为建表语句且所述客户端具有对应的权限信息,将所述第一SQL语句向所述目标数据库发送,获得执行结果;
将所述执行结果返回客户端。
若所述语句类型为删库语句,对所述第一SQL语句进行阻断,获得阻断信息;
将所述阻断信息返回客户端。
图3为本申请实施例提供的电子设备实体结构示意图,如图3所示,所述电子设备,包括:处理器(processor)301、存储器(memory)302和总线303;其中,
所述处理器301和存储器302通过所述总线303完成相互间的交互;
所述处理器301用于调用所述存储器302中的程序指令,以执行上述各方法实施例所提供的方法。
处理器301可以是一种集成电路芯片,具有信号处理能力。上述处理器301可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(NetworkProcessor,NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。其可以实现或者执行本申请实施例中公开的各种方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器302可以包括但不限于随机存取存储器(Random Acc·ess Memory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(Programmable Read-OnlyMemory,PROM),可擦除只读存储器(Erasable Programmable Read-Only Memory,EPROM),电可擦除只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)等。
本实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法。
本实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行上述各方法实施例所提供的方法。
在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或交互连接可以是通过一些交互接口,装置或单元的间接耦合或交互连接,可以是电性,机械或其它的形式。
另外,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
再者,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种数据安全防护方法,其特征在于,包括:
获取客户端的权限信息和第一SQL语句,所述第一SQL语句包括语句类型和字段,所述字段中包括加密字段;
若所述语句类型为查询类型,基于所述第一SQL语句从目标数据库中进行查询,获得查询结果,所述查询结果包括所述加密字段对应的加密数据;
根据所述权限信息对所述查询结果进行处理,获得目标查询结果;
将所述目标查询结果返回所述客户端。
2.根据权利要求1所述的方法,其特征在于,所述根据所述权限信息对所述查询结果进行处理,获得目标查询结果,包括:
根据所述权限信息判断所述客户端是否具有查看权限;
若具有所述查看权限,根据所述加密字段对应的密钥对所述查询结果中的加密数据进行解密,获得目标查询结果;
若不具有所述查看权限,则将所述查询结果作为所述目标查询结果。
3.根据权利要求1所述的方法,其特征在于,所述第一SQL语句中还包括所述加密字段对应的值,所述方法还包括:
判断所述第一SQL语句中所述加密字段对应的值是否符合所述加密字段的数据类型要求;
若所述加密字段对应的值不符合所述数据类型要求,对所述第一SQL语句进行阻断,获得阻断信息,并向所述客户端发送所述阻断信息。
4.根据权利要求3所述的方法,其特征在于,所述基于所述第一SQL语句从目标数据库中进行查询,获得查询结果,包括:
若所述加密字段对应的值符合所述数据类型要求,且所述语句类型为查询类型,根据所述加密字段对应的加密算法对所述第一SQL语句中所述加密字段对应的值进行加密,获得第二SQL语句;
根据所述第二SQL语句从所述目标数据库中查询,获得查询结果。
5.根据权利要求3所述的方法,其特征在于,所述方法还包括:
若所述加密字段对应的值符合所述数据类型要求,且所述语句类型为操作类型,根据所述权限信息判断所述客户端是否具有对应的操作权限,所述操作类型包括插入、删除或更新;
当所述客户端具有对应的操作权限,根据所述加密字段对应的加密算法对所述第一SQL语句中所述加密字段对应的值进行加密,获得第三SQL语句;
利用所述第三SQL语句在目标数据库中进行操作,获得操作结果,并向所述客户端返回所述操作结果;
当所述客户端不具有对应的操作权限,则对所述第一SQL语句进行阻断,获得阻断信息,并向所述客户端发送所述阻断信息。
6.根据权利要求1所述的方法,其特征在于,在获取客户端的权限信息和第一SQL语句之前,所述方法还包括:
接收客户端的登录请求;
对所述登录请求进行验证,获得所述客户端的用户信息;
根据所述用户信息确定所述客户端的权限信息,所述权限信息包括对目标数据库的查看权限和操作权限。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
添加数据库的数据资产信息,所述数据资产信息包括数据库连接信息、代理IP和代理端口;
根据所述数据资产信息为所述数据库配置对应的黑白名单、访问时间段和权限信息;
在所述数据库中配置加密信息和敏感信息,所述加密信息包括加密表、加密字段、加密算法和密钥,所述敏感信息包括敏感字段和敏感算法。
8.一种数据安全防护装置,其特征在于,包括:
获取模块,用于获取客户端的权限信息和第一SQL语句,所述第一SQL语句包括语句类型和字段,所述字段中包括加密字段;
查询模块,用于若所述语句类型为查询类型,基于所述第一SQL语句从目标数据库中进行查询,获得查询结果,所述查询结果包括所述加密字段对应的加密数据;
处理模块,用于根据所述权限信息对所述查询结果进行处理,获得目标查询结果;
发送模块,用于将所述目标查询结果返回所述客户端。
9.一种电子设备,其特征在于,包括:处理器、存储器和总线,其中,
所述处理器和所述存储器通过所述总线完成相互间的通信;
所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如权利要求1-7任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储计算机指令,所述计算机指令被计算机运行时,使所述计算机执行如权利要求1-7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111531542.8A CN114372276A (zh) | 2021-12-14 | 2021-12-14 | 一种数据安全防护方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111531542.8A CN114372276A (zh) | 2021-12-14 | 2021-12-14 | 一种数据安全防护方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114372276A true CN114372276A (zh) | 2022-04-19 |
Family
ID=81141147
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111531542.8A Pending CN114372276A (zh) | 2021-12-14 | 2021-12-14 | 一种数据安全防护方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114372276A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114706857A (zh) * | 2022-04-22 | 2022-07-05 | 北京友友天宇系统技术有限公司 | 跨多源异构存储系统的统一鉴/授权方法、设备和存储介质 |
CN114840521A (zh) * | 2022-04-22 | 2022-08-02 | 北京友友天宇系统技术有限公司 | 数据库的权限管理和数据保护方法、装置、设备和存储介质 |
CN115481448A (zh) * | 2022-09-16 | 2022-12-16 | 昆仑数智科技有限责任公司 | 数据获取方法、装置、服务器及存储介质 |
CN117076504A (zh) * | 2023-08-18 | 2023-11-17 | 北京博望华科科技有限公司 | 数据处理方法、系统、电子设备及介质 |
CN117113422A (zh) * | 2023-10-24 | 2023-11-24 | 中电科网络安全科技股份有限公司 | 一种数据库加密方法、装置、设备及介质 |
WO2024087313A1 (zh) * | 2022-10-28 | 2024-05-02 | 蚂蚁区块链科技(上海)有限公司 | 一种数据库访问方法及装置 |
CN118277391A (zh) * | 2024-06-04 | 2024-07-02 | 浪潮云信息技术股份公司 | 一种目录权限控制方法、装置、设备及存储介质 |
-
2021
- 2021-12-14 CN CN202111531542.8A patent/CN114372276A/zh active Pending
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114706857A (zh) * | 2022-04-22 | 2022-07-05 | 北京友友天宇系统技术有限公司 | 跨多源异构存储系统的统一鉴/授权方法、设备和存储介质 |
CN114840521A (zh) * | 2022-04-22 | 2022-08-02 | 北京友友天宇系统技术有限公司 | 数据库的权限管理和数据保护方法、装置、设备和存储介质 |
CN115481448A (zh) * | 2022-09-16 | 2022-12-16 | 昆仑数智科技有限责任公司 | 数据获取方法、装置、服务器及存储介质 |
CN115481448B (zh) * | 2022-09-16 | 2023-06-20 | 昆仑数智科技有限责任公司 | 数据获取方法、装置、服务器及存储介质 |
WO2024087313A1 (zh) * | 2022-10-28 | 2024-05-02 | 蚂蚁区块链科技(上海)有限公司 | 一种数据库访问方法及装置 |
CN117076504A (zh) * | 2023-08-18 | 2023-11-17 | 北京博望华科科技有限公司 | 数据处理方法、系统、电子设备及介质 |
CN117113422A (zh) * | 2023-10-24 | 2023-11-24 | 中电科网络安全科技股份有限公司 | 一种数据库加密方法、装置、设备及介质 |
CN118277391A (zh) * | 2024-06-04 | 2024-07-02 | 浪潮云信息技术股份公司 | 一种目录权限控制方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114372276A (zh) | 一种数据安全防护方法、装置、电子设备及存储介质 | |
CN114586315B (zh) | 用于去中心化的数据认证的系统、方法和计算机可读介质 | |
EP3701668B1 (en) | Methods for recording and sharing a digital identity of a user using distributed ledgers | |
CN112217835B (zh) | 报文数据的处理方法、装置、服务器和终端设备 | |
CN109784870B (zh) | 合同管理方法、装置、计算机设备及计算机可读存储介质 | |
Ahsan et al. | Class: cloud log assuring soundness and secrecy scheme for cloud forensics | |
CN109905360B (zh) | 数据验证方法及终端设备 | |
CN112801663B (zh) | 区块链存证方法、装置、系统、设备和介质 | |
CN111262835A (zh) | 敏感数据的脱敏存储方法及装置 | |
EP1430680B1 (en) | Server with file verification | |
KR102585404B1 (ko) | 데이터 보안 장치 | |
CN110493011B (zh) | 基于区块链的证书颁发管理方法以及装置 | |
RU2712650C1 (ru) | Программно-аппаратный комплекс подтверждения подлинности электронных документов и электронных подписей | |
CN111800390A (zh) | 异常访问检测方法、装置、网关设备及存储介质 | |
CN116708016A (zh) | 一种敏感数据传输方法、服务器及存储介质 | |
Busch et al. | Make remote forensic investigations forensic again: Increasing the evidential value of remote forensic investigations | |
CN116723032A (zh) | 设备指纹的生成方法、装置、设备及介质 | |
CN113794735B (zh) | 一种saas系统场景下的敏感数据安全保护方法 | |
CN115114657A (zh) | 数据保护方法、电子设备及计算存储介质 | |
CN108449753B (zh) | 一种手机设备读取可信计算环境中的数据的方法 | |
CN113595731A (zh) | 一种分享链接的防护方法、装置及计算机可读存储介质 | |
US20160092886A1 (en) | Methods of authorizing a computer license | |
Goldman et al. | Matchbox: Secure data sharing | |
CN114567476B (zh) | 一种数据安全防护方法、装置、电子设备及介质 | |
CN116757857B (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 |