数据库安全防护方法、装置、电子设备及存储介质与流程

文档序号:31073648发布日期:2022-08-09 21:25阅读:89来源:国知局
数据库安全防护方法、装置、电子设备及存储介质与流程

1.本技术涉及计算机技术领域,具体而言,涉及一种数据库安全防护方法、装置、电子设备及存储介质。


背景技术:

2.网络安全场景化日趋明显,其攻击手段日渐复杂,越来越多的网络攻击渗透的方式与正常的访问难以区分,使得检测技术向细粒度、完整性、准确性发展。
3.在网络安全防御中,结构化程序语言(structured query language,sql)注入攻击是最常见的攻击手段,但是有些高级攻击伪造的访问请求容易绕过sql层面的安全防护,从而对数据库的安全造成较大威胁。


技术实现要素:

4.本技术实施例的目的在于提供一种数据库安全防护方法、装置、电子设备及存储介质,用以改善现有技术中的攻击检测方式导致数据库的安全性低的问题。
5.第一方面,本技术实施例提供了一种数据库安全防护方法,应用于数据库连接器,所述数据库连接器基于数据库操作请求与相应的数据库建立连接,所述方法包括:
6.接收针对数据库的数据库操作请求;
7.对所述数据库操作请求进行安全检测,获得安全检测结果;
8.根据所述安全检测结果对所述数据库操作请求进行响应。
9.在上述实现过程中,本技术中通过数据库连接器来对请求进行安全检测,根据安全检测结果对数据库操作请求进行响应,由于数据库连接器位于上层应用程序与数据库之间,所以可以在底层对请求进行安全检测,即使一些伪装的非安全请求绕过了上层应用程序的防护,本技术的方案也能在底层对非安全请求进行进一步防护,从而有效提高了数据库的安全性。
10.可选地,所述对所述数据库操作请求进行安全检测,获得安全检测结果,包括:
11.判断所述数据库操作请求中是否包含预设敏感关键词,以确定所述数据库操作请求是否为安全请求,获得安全检测结果。
12.在上述实现过程中,通过检测数据库操作请求中是否包含预设敏感词,可有效检测该数据库操作请求是否为安全请求。
13.可选地,所述根据所述安全检测结果对所述数据库操作请求进行响应,包括:
14.若所述安全检测结果为所述数据库操作请求为非安全请求,则对所述数据库操作请求进行拦截;
15.若所述安全检测结果为所述数据库操作请求为安全请求,则根据所述数据库操作请求执行所述数据库连接器的用于操作数据库的方法。
16.在上述实现过程中,在检测到为非安全请求时,对请求进行拦截,以确保请求不会到达数据库,进而确保数据库的安全,在为安全请求时,则按照正常逻辑处理,不会影响数
据库的正常访问。
17.可选地,所述数据库连接器包括插桩的防护模块,所述防护模块用于执行所述数据库安全防护方法,所述对所述数据库操作请求进行安全检测,获得安全检测结果之前,还包括:
18.检测所述防护模块的插桩位置是否正确;
19.若正确,则执行步骤:对所述数据库操作请求进行安全检测,获得安全检测结果;
20.若不正确,则调用所述数据库连接器的工具类将所述防护模块进行删除。
21.在上述实现过程中,在进行安全检测之前,通过检测防护模块的插桩位置是否正确,以此可避免插桩位置不正确而使得正常业务受影响的问题,进一步提高了对数据库访问的安全性。
22.可选地,若检测所述防护模块的插桩位置正确时,所述防护模块被配置为不再进行插桩位置检测的状态。如此可避免对防护模块的插桩位置进行重复检测。
23.可选地,所述防护模块包括插桩位置检测模块和安全检测模块,所述安全检测模块用于对所述数据库操作请求进行安全检测,通过以下方式将所述防护模块配置为不再进行插桩位置检测的状态:
24.调用所述数据库连接器的工具类将所述插桩位置检测模块进行删除;
25.或者,将所述防护模块配置为跳过所述插桩位置检测模块的位置检测。
26.在上述实现过程中,通过将插桩位置检测模块删除或跳过插桩位置检测模块的执行,从而可避免对插桩位置进行重复检测的问题,又能确保安全检测的正常进行。
27.可选地,所述检测所述防护模块的插桩位置是否正确,包括:
28.若所述防护模块首次接收到针对数据库的数据库操作请求,则检测所述防护模块的插桩位置是否正确。如此可避免接收到请求后重复进行插桩位置检测的问题。
29.可选地,所述数据库连接器连接有多个数据库,在所述数据库连接器中每个数据库对应的实现类中插桩有相应的防护模块,每个数据库对应的防护模块用于对自身进行安全防护。这样即使有的防护模块的插桩位置不准确,也不会影响其他数据库的防护模块的安全防护。
30.可选地,所述数据库连接器为java数据库连接器。
31.第二方面,本技术实施例提供了一种数据库安全防护装置,运行于数据库连接器,所述数据库连接器基于数据库操作请求与相应的数据库建立连接,所述装置包括:
32.请求接收模块,用于接收针对数据库的数据库操作请求;
33.安全检测模块,用于对所述数据库操作请求进行安全检测,获得安全检测结果;
34.请求响应模块,用于根据所述安全检测结果对所述数据库操作请求进行响应。
35.第三方面,本技术实施例提供一种电子设备,包括处理器以及存储器,所述存储器存储有计算机可读取指令,当所述计算机可读取指令由所述处理器执行时,运行如上述第一方面提供的所述方法中的步骤。
36.第四方面,本技术实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时运行如上述第一方面提供的所述方法中的步骤。
37.第五方面,本技术实施例提供一种计算机程序产品,包括计算机程序指令,所述计算机程序指令被处理器读取并运行时,执行第一方面提供的方法中的步骤。
38.本技术的其他特征和优点将在随后的说明书阐述,并且,部分地从说明书中变得显而易见,或者通过实施本技术实施例了解。本技术的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
39.为了更清楚地说明本技术实施例的技术方案,下面将对本技术实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本技术的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
40.图1为本技术实施例提供的一种数据库安全防护方法的流程图;
41.图2为本技术实施例提供的一种防护模块的插桩位置示意图;
42.图3为本技术实施例提供的一种数据库安全防护装置的结构框图;
43.图4为本技术实施例提供的一种用于执行数据库安全防护方法的电子设备的结构示意图。
具体实施方式
44.下面将结合本技术实施例中附图,对本技术实施例中的技术方案进行清楚、完整地描述。
45.需要说明的是,本发明实施例中的术语“系统”和“网络”可被互换使用。“多个”是指两个或两个以上,鉴于此,本发明实施例中也可以将“多个”理解为“至少两个”。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,字符“/”,如无特殊说明,一般表示前后关联对象是一种“或”的关系。
46.本技术实施例提供一种数据库安全防护方法,该方法应用于数据库连接器,用于对数据库操作请求进行安全检测,根据安全检测结果对数据库操作请求进行响应,由于数据库连接器位于上层应用程序与数据库之间,所以可以在底层对请求进行安全检测,即使一些伪装的非安全请求绕过了上层应用程序的防护,本技术的方案也能在底层对非安全请求进行进一步防护,从而有效提高了数据库的安全性。
47.请参照图1,图1为本技术实施例提供的一种数据库安全防护方法的流程图,该方法包括如下步骤:
48.步骤s110:接收针对数据库的数据库操作请求。
49.本技术的方法应用于数据库连接器,数据库连接器可以理解为一种驱动程序,用于基于数据库操作请求与相应的数据库建立连接,其可以包含一系列用于实现数据库的接口,接口是提供给数据库厂商使用的,该接口是按照数据库连接器的标准实现的,不同数据库厂商可以根据自己的需求在接口中实现不同的调用逻辑,使得上层的应用程序可以通过数据连接器中的接口和数据库连接,这样上层应用程序就可以通过数据库连接器实现对数据库的访问。
50.在一些实施方式中,这里的数据库连接器可以是java数据库连接器(java database connectivity,jdbc),上层应用程序为java程序,当然在其他实施方式中,若是
通过其他程序语言编写的,该数据库连接器也可以是其他类型的数据库连接器,上层应用程序可以是其他语言编写的程序。
51.java程序一般包括三个层,即表现层、业务层和持久层,这些层可对请求按照不同的逻辑进行处理,为了便于对攻击进行检测,一般可以在这些层中部署检测规则,如果请求命中检测规则,则认为是非安全请求,反之则是安全请求,安全请求即可进行继续后续的数据库访问。但是某些高级攻击请求,其伪装程度较高,很容易绕过java层中的检测规则的攻击检测,从而对数据库进行非法访问。为了避免该问题,本技术中在数据库连接器中还进行安全检测,数据库连接器是java程序访问数据库的最后一层,所以即使攻击请求绕过了java层的防护,在请求到达数据库连接器时,也能被数据库连接器进行安全检测,从而可进一步确保数据库的安全性。
52.其中,本技术的方法可以由插桩到数据库连接器中的防护模块来执行,即由防护模块来对数据库操作请求进行安全检测,并根据安全检测结果进行响应,为了便于描述,下述实施例中均以防护模块作为执行主体进行说明。插桩是指可以在程序的任意位置插入所需的程序或修改程序,这样在原有的程序运行时,可以在任意位置,优先运行插入的程序,但是对原有程序的运行逻辑不影响,本技术中在数据库连接器中插桩防护模块,不影响数据库连接器的原有逻辑,且还可以通过插桩的防护模块实现对数据库的安全防护。
53.如图2所示,应用程序中包含数据库连接器,这里可以在数据库连接器的任意位置或者是特定位置处插桩防护模块,数据库连接器可连接至少一个数据库,这些数据库的类型可不同或相同,应用程序可通过数据库连接器访问数据库。
54.在需要访问数据库时,数据库操作请求可以是数据库连接器的上层应用程序自己发起的,也可以是其他应用程序发起的,也可以是用户在相应的操作界面触发的。数据库操作请求到达上层应用程序后,上层应用程序调用数据库连接器,此时数据库连接器中的防护模块即可对数据库操作请求进行相应的安全检测。
55.步骤s120:对数据库操作请求进行安全检测,获得安全检测结果。
56.由于防护模块插桩在数据库连接器中,而数据库连接器是连接数据库的最后一层,所以这样可以在底层对数据库操作请求进行安全检测,即使有的攻击能够伪装后,逃过上层应用程序的安全检测,但是也能被插桩在底层(即数据库连接器)中的防护模块进行安全检测。
57.安全检测即检测数据库操作请求是否为对数据库产生安全威胁的请求,具体的检测方法可在后续实施例做详细说明,在此先不过多赘述。
58.步骤s130:根据安全检测结果对数据库操作请求进行响应。
59.安全检测结果即为防护模块对数据库操作请求进行安全检测后获得的结果,例如,如果某些请求会对数据库的安全产生威胁,则防护模块可对这些请求进行相应的拦截处理,而如果请求不会对数据库的安全造成威胁,则防护模块可放通该请求,后续的程序处理逻辑会对该请求继续进行处理。
60.在上述实现过程中,本技术中通过数据库连接器来对请求进行安全检测,根据安全检测结果对数据库操作请求进行响应,由于数据库连接器位于上层应用程序与数据库之间,所以可以在底层对请求进行安全检测,即使一些伪装的非安全请求绕过了上层应用程序的防护,本技术的方案也能在底层对非安全请求进行进一步防护,从而有效提高了数据
库的安全性。
61.在上述实施例的基础上,对数据库操作请求进行安全检测,获得安全检测结果的方式包括:
62.(1)判断数据库操作请求中是否包含预设敏感关键词,以确定数据库操作请求是否为安全请求。
63.这里的预设敏感关键词可以是预先配置好的,如防护模块可以在进行安全检测时,调用预先存储的多个预设敏感关键词,预设敏感关键词可以是指敏感语句,敏感语句是指对数据库的安全造成威胁的一些语句,如数据库操作请求是指sql语句,则可以检测该sql语句中是否包含敏感语句,这里检测的方式可以是将sql语句与敏感语句进行匹配,如此可判断sql语句中是否有与敏感语句匹配的语句。如果检测到该sql语句中包含敏感语句,则表明当前接收到的数据库操作请求中包含预设敏感关键词,则可确定该数据库操作请求为非安全请求,即该数据库操作请求会对要访问的数据库的安全造成威胁。
64.而如果防护模块检测到该sql语句中不包含敏感语句,则表明当前接收到的数据库操作请求中不包含预设敏感关键词,则可确定该数据库操作请求为安全请求,对要访问的数据库不会造成安全威胁。
65.在上述实现过程中,通过检测数据库操作请求中是否包含预设敏感词,可有效检测该数据库操作请求是否为安全请求。
66.(2)判断数据库操作请求是否和恶意请求匹配,以确定数据库操作请求是否为安全请求。
67.这里的恶意请求可以是预先配置好的,即预先收集了大量的恶意请求,该恶意请求是指对数据库造成安全威胁的请求,所以如果数据库操作请求和恶意请求匹配,则认为数据库操作请求为非安全请求,反之,如果数据库操作请求和恶意请求不匹配,则认为数据库操作请求为安全请求。
68.恶意请求可以是指恶意请求模板,恶意请求模板规定了恶意请求的格式、字段等内容,所以,如果当前接收到的数据库操作请求的格式、字段等跟恶意请求模板匹配,则可认为数据库操作请求与恶意请求匹配,是非安全请求,反之,则不匹配,是安全请求。
69.在上述实施例的基础上,防护模块在对数据库操作请求进行安全检测获得安全检测结果后,可根据安全检测结果对数据库操作请求进行响应,其响应的方式包括:
70.若安全检测结果为数据库操作请求为非安全请求,则对数据库操作请求进行拦截,若安全检测结果为数据库操作请求为安全请求,则根据数据库操作请求执行数据库连接器的用于操作数据库的方法。
71.可以理解地,在数据库操作请求为非安全请求时,防护模块可以自动对数据库操作请求进行拦截,这样数据库操作请求即无法到达数据库,也就无法对数据库进行相应的访问操作,如此可确保数据库安全。而如果数据库操作请求为安全请求,此时防护模块可对该数据库操作请求不做任何处理,而数据库连接器可以通过执行后续的程序来对数据库操作请求继续处理,即按照正常的数据库访问逻辑对数据库操作请求进行处理,此时数据库操作请求即可到达数据库,进而实现对数据库的访问。
72.在上述实现过程中,在检测到为非安全请求时,对请求进行拦截,以确保请求不会到达数据库,进而确保数据库的安全,在为安全请求时,则按照正常逻辑处理,不会影响数
据库的正常访问。
73.在上述实施例的基础上,具体实现过程中,防护模块一般是插桩到数据库连接器的实现类中的,如果防护模块的插桩位置不正确,则可能对其插桩的实现类的业务造成不确定的影响,最严重的可能会导致该实现类的业务无法正常执行。所以,为了进一步提高数据库的安全性,还可以在对数据库操作请求进行安全检测之前,先检测防护模块的插桩位置是否正确,若正确,则继续执行步骤:对数据库操作请求进行安全检测,获得安全检测结果,若不正确,则防护模块可调用数据库连接器的工具类将防护模块进行删除。
74.其中,防护模块的正确插桩位置应该插桩到数据库对应的实现类(实现类可理解为上述的数据库的接口)中,数据库对应的实现类由其数据库厂商实现,所以可以通过判断防护模块的插桩位置是否为数据库的实现类,进而来判断插桩位置是否正确。例如,在数据库连接器是java数据库连接器jdbc时,如果检测到防护模块插桩的实现类(实现类即可认为是插桩位置),不是继承java.sql.statement或java.sql.preparedstatement,则可认为该防护模块不是针对jdbc标准进行插桩的,也即,表示该实现类不是数据库对应的实现类,此时可确定防护模块的插桩位置不正确,是误插桩,这种情况下,则可以调用数据库连接器的工具类将防护模块进行删除。其工具类如java现有的instrumentation工具类,该工具类能够将防护模块从该实现类中删除,以实现程序的自动还原,从而不影响后续该实现类的业务。
75.而如果检测到防护模块的实现类,是继承java.sql.statement或java.sql.preparedstatement,表示该实现类是数据库对应的实现类,进而可确定防护模块的插桩位置是正确的,此时可继续执行后续的逻辑,即通过防护模块对数据库操作请求进行安全检测。
76.在上述实现过程中,在进行安全检测之前,通过检测防护模块的插桩位置是否正确,以此可避免插桩位置不正确而使得正常业务受影响的问题,进一步提高了对数据库访问的安全性。
77.在上述实施例的基础上,防护模块可以定期对自身的插桩位置是否正确进行检测,也可以在防护模块初始化时进行检测,也可以在每次接收到数据库操作请求后进行检测。在一些实施方式中,为了减少检测工作量,防护模块可以在首次接收到针对数据库的数据库操作请求时,检测防护模块的插桩位置是否正确。
78.例如,如果防护模块接收到一个数据库操作请求后,该防护模块会先判断是否是首次接收到数据库操作请求,如果不是首次接收到,则可跳过插桩位置检测的步骤,而直接执行对数据库操作请求进行安全检测的步骤,如果是首次接收到,则可先检测插桩位置是否正确,如果正确,则再执行对数据库操作请求进行安全检测的步骤。
79.需要说明的是,如果防护模块首次接收到数据库操作请求,检测其插桩位置不正确时,此时可将数据库操作请求返回给上层应用程序,如返回错误提示给上层应用程序,则上层应用程序可根据返回的信息按照自己的逻辑进行处理。
80.在上述实施例的基础上,为了避免防护模块频繁检测插桩位置是否正确,在防护模块检测到其插桩位置正确时,该防护模块被配置为不再进行插桩位置检测的状态。
81.这里的配置可以是人为配置,也可以是数据库连接器中的工具类来对防护模块进行配置,例如,防护模块在检测到插桩位置正确时,将该信息记录下来并提交给数据库连接
器的工具类或者上层应用程序,后续可由工具类自动对防护模块进行配置,或者上层应用程序输出给管理员,由管理员自行进行配置。当然,也可以是防护模块自己进行配置。
82.在防护模块被配置为不再进行插桩位置检测的状态后,后续防护模块则不会再继续进行插桩位置的检测了,例如如果防护模块是定期进行插桩位置的检测,或者是每次接收到数据库操作请求都进行插桩位置的检测,如果防护模块被配置为不再进行插桩位置检测的状态后,此后防护模块在后续定时检测时间到来时也不会再进行插桩位置的检测,或者后续接收到数据库操作请求后也不会再进行插桩位置的检测。
83.在上述实施例的基础上,在具体实现过程中,防护模块可以包括插桩位置检测模块和安全检测模块,安全检测模块用于对数据库操作请求进行安全检测,获得安全检测结果,可以通过以下方式将防护模块配置为不再进行插桩位置检测的状态:
84.调用数据库连接器的工具类将插桩位置检测模块进行删除;
85.或者,将防护模块配置为跳过插桩位置检测模块的位置检测。
86.其中,防护模块在检测到插桩位置正确时,为了避免后续不再进行插桩位置检测,可以调用数据库连接器的工具类将插桩位置检测模块进行删除,这里仅是将插桩位置检测模块对应的代码删除,而不删除安全检测模块对应的代码,所以后续防护模块处理时,不需要再进行插桩位置检测,而是可以直接对数据库操作请求进行安全检测。
87.或者,这里也可以直接将插桩位置检测模块和安全检测模块一并删除,然后重新单独将安全检测模块插桩到该实现类中,如此也可实现防护模块后续无需再进行插桩位置检测,只需实现安全检测。
88.这里的数据库连接器的工具类也可以是java现有的instrumentation工具类。可以理解地,在防护模块检测到插桩位置不正确时,可以调用该工具类对防护模块进行删除,此时删除的是插桩位置检测模块以及安全检测模块,即防护模块对应的代码全部删除,删除之后,也就没有后续的插桩位置检测和安全检测了。
89.或者,将防护模块配置为跳过插桩位置检测,这里配置“跳过插桩位置检测”的方式可以包括:
90.(1)在防护模块中添加标识,该标识可用于指示防护模块直接跳过插桩检测模块的执行,而直接执行安全检测模块的步骤,这样防护模块在执行时,若识别到该标识,则可直接执行安全检测模块的步骤。
91.这里添加标识可以是人为添加,也可以是由数据库连接器的其他工具类来添加,具体的添加手段可以根据实际需求灵活设置。
92.(2)在防护模块中添加一些跳过执行插桩检测模块的代码指令,该代码指令用于指示跳过插桩检测模块对应的代码执行,而直接执行安全检测模块对应的代码。这样防护模块在执行到该代码指令时,可以直接跳过插桩检测模块,而是跳到安全检测模块的代码行,开始执行安全检测模块的安全检测步骤。
93.这里添加代码指令的方式也可以人为添加,也可以通过数据库连接器的其他工具类来添加,如在插桩检测模块对应的代码之前添加代码指令,具体的添加手段可以根据实际需求灵活设置。
94.在上述实现过程中,通过将插桩位置检测模块删除或跳过插桩位置检测模块的执行,从而可避免对插桩位置进行重复检测的问题,又能确保安全检测的正常进行。
95.在上述实施例的基础上,数据库连接器可连接有多个数据库,在数据库连接器中每个数据库对应的实现类中插桩有相应的防护模块,每个数据库对应的防护模块用于对自身进行安全防护。
96.可以理解地,如果有多个数据库,为了对每个数据库均进行安全防护,每个数据库厂商可在数据库连接器中实现对应的实现类,然后将实现类插入自己的防护模块,即每个数据库对应一个防护模块。
97.各个防护模块可以是相同的,即各个防护模块均可以进行上述的插桩位置检测和安全检测,其各个防护模块的插桩位置检测和安全检测逻辑可以相同,当然也可以不同,即各个防护模块可以有不同的插装位置检测和安全检测方式,其可以由各个数据库厂商灵活设置,例如,安全检测方式中设置检测的敏感词可以不同。
98.各个防护模块对自己的数据库进行安全防护可以这样理解:例如,数据库连接器接收到一个数据库操作请求,如果该数据库操作请求是针对数据库1的,则数据库连接器将该数据库操作请求提交给数据库1对应的防护模块1,此时数据库1对应的防护模块1接收到数据库操作请求后,若是首次接收到,可先进行插桩位置检测,若插桩位置正确,则再进行安全检测,若插桩位置不正确,则调用数据库连接器的工具类将防护模块1删除,这种情况下,其他数据库对应的防护模块可以不受影响,仍然可以按照自己的逻辑来对其对应的数据库进行安全防护(例如,其他数据库对应的防护模块也只有在自己首次接收到数据库操作请求时才会进行插桩位置检测,也就是说各个防护模块是相互独立,互不影响的),从而可有效提高数据库的安全性。
99.请参照图3,图3为本技术实施例提供的一种数据库安全防护装置200的结构框图,该装置200可以是电子设备中的数据连接器上的模块、程序段或代码。应理解,该装置200与上述图1方法实施例对应,能够执行图1方法实施例涉及的各个步骤,该装置200具体的功能可以参见上文中的描述,为避免重复,此处适当省略详细描述。
100.可选地,所述装置200包括:
101.请求接收模块210,用于接收针对数据库的数据库操作请求,获得安全检测结果;
102.安全检测模块220,用于对所述数据库操作请求进行安全检测;
103.请求响应模块230,用于根据所述安全检测结果对所述数据库操作请求进行响应。
104.可选地,所述安全检测模块220,用于判断所述数据库操作请求中是否包含预设敏感关键词,以确定所述数据库操作请求是否为安全请求,获得安全检测结果。
105.可选地,所述请求响应模块230,用于若所述安全检测结果为所述数据库操作请求为非安全请求,则对所述数据库操作请求进行拦截;若所述安全检测结果为所述数据库操作请求为安全请求,则根据所述数据库操作请求执行所述数据库连接器的用于操作数据库的方法。
106.可选地,所述数据库连接器包括插桩的防护模块,所述防护模块用于执行所述数据库安全防护方法,所述装置200还包括:
107.插桩检测模块,用于检测所述防护模块的插桩位置是否正确;若正确,则通过所述安全检测模块220执行步骤:对所述数据库操作请求进行安全检测,获得安全检测结果;若不正确,则调用所述数据库连接器的工具类将所述防护模块进行删除。
108.可选地,若检测所述防护模块的插桩位置正确时,所述防护模块被配置为不再进
行插桩位置检测的状态。
109.可选地,所述防护模块包括插桩位置检测模块和安全检测模块,所述安全检测模块用于对所述数据库操作请求进行安全检测,通过以下方式将所述防护模块配置为不再进行插桩位置检测的状态:
110.调用所述数据库连接器的工具类将所述插桩位置检测模块进行删除;
111.或者,将所述防护模块配置为跳过所述插桩位置检测模块的位置检测。
112.可选地,所述插桩检测模块,用于若所述防护模块首次接收到针对数据库的数据库操作请求,则检测所述防护模块的插桩位置是否正确。
113.可选地,所述数据库连接器连接有多个数据库,在所述数据库连接器中每个数据库对应的实现类中插桩有相应的防护模块,每个数据库对应的防护模块用于对自身进行安全防护。
114.可选地,所述数据库连接器为java数据库连接器。
115.需要说明的是,本领域技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再重复描述。
116.请参照图4,图4为本技术实施例提供的一种用于执行数据库安全防护方法的电子设备的结构示意图,所述电子设备可以包括:至少一个处理器310,例如cpu,至少一个通信接口320,至少一个存储器330和至少一个通信总线340。其中,通信总线340用于实现这些组件直接的连接通信。其中,本技术实施例中设备的通信接口320用于与其他节点设备进行信令或数据的通信。存储器330可以是高速ram存储器,也可以是非易失性的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器330可选的还可以是至少一个位于远离前述处理器的存储装置。存储器330中存储有计算机可读取指令,当所述计算机可读取指令由所述处理器310执行时,电子设备执行上述图1所示方法过程。
117.可以理解,图4所示的结构仅为示意,所述电子设备还可包括比图4中所示更多或者更少的组件,或者具有与图4所示不同的配置。图4中所示的各组件可以采用硬件、软件或其组合实现。
118.本技术实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,执行如图1所示方法实施例中电子设备所执行的方法过程。
119.本实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如,包括:接收针对数据库的数据库操作请求;对所述数据库操作请求进行安全检测,获得安全检测结果;根据所述安全检测结果对所述数据库操作请求进行响应。
120.综上所述,本技术实施例提供一种数据库安全防护方法、装置、电子设备及存储介质,该方法通过数据库连接器来对请求进行安全检测,根据安全检测结果对数据库操作请求进行响应,由于数据库连接器位于上层应用程序与数据库之间中,所以可以在底层对请求进行安全检测,即使一些伪装的非安全请求绕过了上层应用程序的防护,本技术的方案也能在底层对非安全请求进行进一步防护,从而有效提高了数据库的安全性。
121.在本技术所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻
辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
122.另外,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
123.再者,在本技术各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
124.在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
125.以上所述仅为本技术的实施例而已,并不用于限制本技术的保护范围,对于本领域的技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1