CN117195204A - 异常数据检测方法、装置、电子设备及计算机可读介质 - Google Patents
异常数据检测方法、装置、电子设备及计算机可读介质 Download PDFInfo
- Publication number
- CN117195204A CN117195204A CN202311439760.8A CN202311439760A CN117195204A CN 117195204 A CN117195204 A CN 117195204A CN 202311439760 A CN202311439760 A CN 202311439760A CN 117195204 A CN117195204 A CN 117195204A
- Authority
- CN
- China
- Prior art keywords
- function call
- call stack
- code data
- determining
- risk type
- 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.)
- Granted
Links
- 230000002159 abnormal effect Effects 0.000 title claims abstract description 59
- 238000001514 detection method Methods 0.000 title claims abstract description 50
- 230000004044 response Effects 0.000 claims abstract description 24
- 238000000034 method Methods 0.000 claims description 23
- 239000000523 sample Substances 0.000 claims description 19
- 238000004590 computer program Methods 0.000 claims description 14
- 238000012545 processing Methods 0.000 abstract description 12
- 230000006870 function Effects 0.000 description 133
- 238000010586 diagram Methods 0.000 description 14
- 239000003795 chemical substances by application Substances 0.000 description 8
- 238000004891 communication Methods 0.000 description 7
- 230000003287 optical effect Effects 0.000 description 4
- 230000006378 damage Effects 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000001010 compromised effect Effects 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000013475 authorization Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Abstract
本申请公开了异常数据检测方法、装置、电子设备及计算机可读介质,涉及大数据数据处理技术领域,一具体实施方式包括接收异常数据检测请求,定位目标业务代码数据;确定目标业务代码数据所在的函数调用栈,进而确定函数调用栈中目标业务代码数据之前的框架代码数据的数量;根据数量,确定函数调用栈的风险类型;响应于风险类型为数据库连接泄漏,输出函数调用栈和风险类型。以无侵入应用程序代码的方式,通过分析函数调用栈,准确快速地识别出有数据库连接泄露风险的函数调用栈并输出给相关人员进行处理,保证应用程序正常工作。
Description
技术领域
本申请涉及大数据数据处理技术领域,尤其涉及一种异常数据检测方法、装置、电子设备及计算机可读介质。
背景技术
目前,JAVA应用开发过程中,通常数据库连接的创建、数据库连接的回收,会在mybatis、jpa等框架内部完成。ORM(Object Relational Mapping)框架:一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术。ORM框架是连接数据库的桥梁,只要提供了持久化类与表的映射关系,ORM框架在运行时就能参照映射文件的信息,把对象持久化到数据库中。正确使用ORM框架不会出现数据库连接泄露的情况。JDBC:全称 Java DatabaseConnectivity,Java数据库连接,是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。JDBC是面向关系型数据库的。当开发人员直接使用JAVA JDBC API接口操作数据库连接,使用不当的情况下,会出现数据库连接泄露,进而导致数据库连接池中的连接被占用,无法释放,最终导致数据库连接池耗尽,应用程序无法再获取到数据库连接,应用程序无法正常工作。
发明内容
有鉴于此,本申请实施例提供一种异常数据检测方法、装置、电子设备及计算机可读介质,能够解决现有的数据库连接泄露,导致数据库连接池中的连接被占用,无法释放,最终导致数据库连接池耗尽,应用程序无法再获取到数据库连接,应用程序无法正常工作的问题。
为实现上述目的,根据本申请实施例的一个方面,提供了一种异常数据检测方法,包括:
接收异常数据检测请求,定位目标业务代码数据;
确定目标业务代码数据所在的函数调用栈,进而确定函数调用栈中目标业务代码数据之前的框架代码数据的数量;
根据数量,确定函数调用栈的风险类型;
响应于风险类型为数据库连接泄漏,输出函数调用栈和风险类型。
可选地,确定函数调用栈的风险类型,包括:
响应于数量小于预设阈值,确定函数调用栈的风险类型为数据库连接泄漏。
可选地,定位目标业务代码数据,包括:
获取目标平台标识;
将目标平台标识所在的代码数据确定为目标业务代码数据。
可选地,获取目标平台标识,包括:
调用平台标识库,以将平台标识库中的各个平台标识与各个函数调用栈中的代码段数据进行匹配,将匹配到的平台标识确定为目标平台标识。
可选地,在输出函数调用栈和风险类型之前,方法还包括:
调用代理程序以探针的形式对函数调用栈进行的数据库连接获取进行拦截。
可选地,调用代理程序以探针的形式对函数调用栈进行的数据库连接获取进行拦截,包括:
基于风险类型、函数调用栈和代理程序,生成异步任务;
调用线程池,以执行异步任务,调用对应的代理程序以探针的形式对函数调用栈进行的数据库连接获取进行拦截。
可选地,确定函数调用栈的风险类型,包括:
响应于数量大于或等于预设阈值,确定函数调用栈的风险类型为数据库连接未泄漏。
另外,本申请还提供了一种异常数据检测装置,包括:
接收单元,被配置成接收异常数据检测请求,定位目标业务代码数据;
数量确定单元,被配置成确定目标业务代码数据所在的函数调用栈,进而确定函数调用栈中目标业务代码数据之前的框架代码数据的数量;
风险类型确定单元,被配置成根据数量,确定函数调用栈的风险类型;
输出单元,被配置成响应于风险类型为数据库连接泄漏,输出函数调用栈和风险类型。
可选地,风险类型确定单元进一步被配置成:
响应于数量小于预设阈值,确定函数调用栈的风险类型为数据库连接泄漏。
可选地,接收单元进一步被配置成:
获取目标平台标识;
将目标平台标识所在的代码数据确定为目标业务代码数据。
可选地,接收单元进一步被配置成:
调用平台标识库,以将平台标识库中的各个平台标识与各个函数调用栈中的代码段数据进行匹配,将匹配到的平台标识确定为目标平台标识。
可选地,装置还包括拦截单元,被配置成:
调用代理程序以探针的形式对函数调用栈进行的数据库连接获取进行拦截。
可选地,拦截单元进一步被配置成:
基于风险类型、函数调用栈和代理程序,生成异步任务;
调用线程池,以执行异步任务,调用对应的代理程序以探针的形式对函数调用栈进行的数据库连接获取进行拦截。
可选地,风险类型确定单元进一步被配置成:
响应于数量大于或等于预设阈值,确定函数调用栈的风险类型为数据库连接未泄漏。
另外,本申请还提供了一种异常数据检测电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现如上述的异常数据检测方法。
另外,本申请还提供了一种计算机可读介质,其上存储有计算机程序,程序被处理器执行时实现如上述的异常数据检测方法。
为实现上述目的,根据本申请实施例的又一个方面,提供了一种计算机程序产品。
本申请实施例的一种计算机程序产品,包括计算机程序,程序被处理器执行时实现本申请实施例提供的异常数据检测方法。
上述发明中的一个实施例具有如下优点或有益效果:本申请通过接收异常数据检测请求,定位目标业务代码数据;确定目标业务代码数据所在的函数调用栈,进而确定函数调用栈中目标业务代码数据之前的框架代码数据的数量;根据数量,确定函数调用栈的风险类型;响应于风险类型为数据库连接泄漏,输出函数调用栈和风险类型。以无侵入应用程序代码的方式,通过分析函数调用栈,准确快速地识别出有数据库连接泄露风险的函数调用栈并输出给相关人员进行处理,保证应用程序正常工作。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本申请,不构成对本申请的不当限定。其中:
图1是根据本申请一个实施例的异常数据检测方法的主要流程的示意图;
图2是根据本申请一个实施例的异常数据检测方法的主要流程的示意图;
图3是根据本申请一个实施例的异常数据检测方法的主要流程示意图;
图4是根据本申请实施例的异常数据检测装置的主要单元的示意图;
图5是本申请实施例可以应用于其中的示例性系统架构图;
图6是适于用来实现本申请实施例的终端设备或服务器的计算机系统的结构示意图。
具体实施方式
以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。需要说明的是,本申请的技术方案中,所涉及的用户个人信息的采集、分析、使用、传输、存储等方面,均符合相关法律法规的规定,被用于合法且合理的用途,不在这些合法使用等方面之外共享、泄露或出售,并且接受监管部门的监督管理。应当对用户个人信息采取必要措施,以防止对此类个人信息数据的非法访问,确保有权访问个人信息数据的人员遵守相关法律法规的规定,确保用户个人信息安全。一旦不再需要这些用户个人信息数据,应当通过限制甚至禁止数据收集和/或删除数据的方式将风险降至最低。
当使用时,包括在某些相关应用程序中,通过对数据去标识来保护用户隐私,例如在使用时通过移除特定标识符、控制所存储数据的量或特异性、控制数据如何被存储、和/或其他方法去标识。
图1是根据本申请一个实施例的异常数据检测方法的主要流程的示意图,如图1所示,异常数据检测方法包括:
步骤S101,接收异常数据检测请求,定位目标业务代码数据。
本实施例中,异常数据检测方法的执行主体(例如,可以是服务器)可以通过有线连接或无线连接的方式,接收异常数据检测请求。该异常数据检测请求可以是检测数据库连接是否泄漏或存在安全风险的请求。执行主体在接收到异常数据检测请求后,可以定位目标业务代码数据。其中,目标业务代码数据可以包括用户基于业务需求自己编写的业务代码数据,本申请实施例对目标业务代码数据的内容和类型不做具体限定。该目标业务代码数据可以作为一个标志用于进行异常数据检测。
作为本申请实施例的另一种实现方式,目标业务代码数据可以是探针代码数据,探针代码数据用于收集和记录程序运行时性能和错误信息的代码数据。通过探针代码数据既能实时监测程序运行性能并实时获取错误信息,以保证程序运行顺畅且安全,又能作为标记代码数据以用于确定是否产生数据库连接泄漏,便于快速、准确、便利地对异常数据进行检测。
步骤S102,确定目标业务代码数据所在的函数调用栈,进而确定函数调用栈中目标业务代码数据之前的框架代码数据的数量。
其中,确定目标代码数据所在的函数调用栈,包括:提取目标代码数据中的类型标识,该类型标识用于表征对应的业务类型,每一个业务类型有对应的函数调用栈,从而执行主体可以根据类型标识快速。准确地确定目标代码数据所在的函数调用栈,提高异常数据检测效率和准确性。
此外执行主体还可以基于目标业务代码数据从配置数据中获取对应的索引,根据索引找到对应的函数调用栈。用户以便于通过索引准确、及时地找到目标业务代码数据所在的函数调用栈。
执行主体可以基于目标业务代码数据生成查找语句,执行生成的查找语句以得到目标业务代码数据所在的函数调用栈。本申请实施例中,函数调用栈可以是函数调用的序列,在该序列中可以包括框架代码数据和用户基于业务需求自己编写的业务代码数据。在函数调用栈中待调用的函数按照调用的顺序依次压入栈中,待最上层的函数执行结束后,即可以弹出相应的栈帧,栈帧包括函数的返回地址和参数、本地变量和调用前后上下文。执行主体可以确定出在函数调用栈中处于目标业务代码数据之上的待调用的函数的数量。具体地,函数调用栈中处于目标业务代码数据之上的待调用的函数可以对应于框架代码数据。框架代码数据用于管理数据库连接的创建、销毁以及使用等,当框架代码数据的数量过少或者少于一定数值,则可以确定没有足够的框架代码数据来保证数据库连接的正常创建、销毁和使用,从而可以判定数据库连接存在泄漏风险或者存在其他安全风险。
步骤S103,根据数量,确定函数调用栈的风险类型。
根据函数调用栈(例如函数调用栈Q)中目标业务代码数据之前的框架代码数据的数量,这里称为当前数量,确定函数调用栈的风险类型,可以通过以下步骤实现:获取历史产生数据库连接泄漏的相同函数调用栈(例如函数调用栈Q)的目标业务代码数据之前的框架代码数据的历史数量,将当前数量与历史数量进行比较,若当前数量小于或等于历史数量,则可以快速、准确地确定函数调用栈的风险类型为数据库连接泄漏,若当前数量大于历史数量,则可以确定当前函数调用栈无数据库连接泄漏的风险。通过将函数调用栈对应的有数据库泄漏风险的历史数据与当前数据进行对比,可以快速且准确地确定出函数调用栈的当前风险类型,提高异常数据检测的效率和准确率。
作为本申请实施例的一种实现方式,确定函数调用栈的风险类型,包括:响应于数量小于预设阈值,确定函数调用栈的风险类型为数据库连接泄漏。
示例的,当函数调用栈中的框架代码数据的数量小于预设阈值时,该预设阈值例如可以是第一预设阈值(该第一预设阈值例如可以是2),则可以确定该函数调用栈对应的代码块管理数据库连接时一定存在数据库连接泄漏。
进一步地,可以基于函数调用栈中的框架代码数据的数量来为函数调用栈对应的代码块管理数据库连接时存在的数据库连接泄漏风险划分等级。示例的,在本申请实施例中,当函数调用栈中的框架代码数据的数量小于预设阈值时,则没有足够数量的框架代码数据来保证数据库连接的正常创建、销毁和使用,从而数据库连接存在安全风险。具体地,执行主体可以根据函数调用栈中的框架代码数据的数量确定风险类型,例如当函数调用栈中的框架代码数据的数量小于第一预设阈值时,确定对应的风险类型为数据库连接泄漏高风险,当函数调用栈中的框架代码数据的数量大于第一预设阈值并小于第二预设阈值时,确定对应的风险类型为数据库连接泄漏中风险,当函数调用栈中的框架代码数据的数量大于第二预设阈值时,确定对应的风险类型为数据库连接泄漏低风险。
步骤S104,响应于风险类型为数据库连接泄漏,输出函数调用栈和风险类型。
具体地,在输出函数调用栈和风险类型之前,异常数据检测方法还包括:调用代理程序以探针的形式对函数调用栈进行的数据库连接获取进行拦截。
当确定风险类型为数据连接泄漏时,则需要阻止数据库连接被调用。具体可以通过代理程序java agent的方式,以探针的形式,对数据库连接获取进行拦截。
具体地,调用代理程序以探针的形式对函数调用栈进行的数据库连接获取进行拦截,包括:基于风险类型、函数调用栈和代理程序,生成异步任务;调用线程池,以执行异步任务,调用对应的代理程序以探针的形式对函数调用栈进行的数据库连接获取进行拦截。
通过将拦截数据库连接做成异步任务,通过异步任务的执行可以提高系统响应速度,从而提高对异常数据检测的效率。
本实施例通过接收异常数据检测请求,定位目标业务代码数据;确定目标业务代码数据所在的函数调用栈,进而确定函数调用栈中目标业务代码数据之前的框架代码数据的数量;根据数量,确定函数调用栈的风险类型;响应于风险类型为数据库连接泄漏,输出函数调用栈和风险类型。以无侵入应用程序代码的方式,通过分析函数调用栈,准确快速地识别出有数据库连接泄露风险的函数调用栈并输出给相关人员进行处理,保证应用程序正常工作。
图2是根据本申请一个实施例的异常数据检测方法的主要流程示意图,如图2所示,异常数据检测方法包括:
步骤S201,接收异常数据检测请求,获取目标平台标识。
目标平台标识,用于表征目标平台的编号或者名称等,例如可以是AAA,代表AAA平台,也可以是BBB,代表BBB平台,当然,目标平台标识还可以是111,代表111平台,本申请实施例对目标平台标识的形式和内容不做具体限定。
步骤S202,将目标平台标识所在的代码数据确定为目标业务代码数据。
目标平台标识可以嵌入于代码数据中,以得到目标业务代码数据。因此,执行主体可以通过查找目标平台标识,来确定由用户根据业务需求编写的目标业务代码数据。
具体地,获取目标平台标识,包括:调用平台标识库,以将平台标识库中的各个平台标识与各个函数调用栈中的代码段数据进行匹配,将匹配到的平台标识确定为目标平台标识。
从各个函数调用栈中的代码段数据中搜索平台标识,例如XXX或111,将搜索到的平台标识,例如XXX或111,确定为目标平台标识。
步骤S203,确定目标业务代码数据所在的函数调用栈,进而确定函数调用栈中目标业务代码数据之前的框架代码数据的数量。
具体地,确定函数调用栈中目标业务代码数据之前的框架代码数据的数量,包括:识别函数调用栈中目标业务代码数据之前的代码数据的类型;根据识别到的类型确定框架代码数据的数量。
其中,识别函数调用栈中目标业务代码数据之前的代码数据的类型,包括:提取函数调用栈中目标业务代码数据之前的代码数据所使用的函数,根据代码数据所使用的函数确定对应的代码数据的类型。从而使得对代码数据的类型的确定更准确,有利于更准确地进行异常数据检测。
步骤S204,根据数量,确定函数调用栈的风险类型。
具体地,确定函数调用栈的风险类型,包括:响应于数量大于或等于预设阈值,确定函数调用栈的风险类型为数据库连接未泄漏。
根据函数调用栈中的框架代码数据的数量确定函数调用栈的风险类型。通过函数调用栈中的框架代码的数量和预设阈值范围可以对风险划分等级,从而得到对应的风险类型。
步骤S205,响应于风险类型为数据库连接泄漏,输出函数调用栈和风险类型。
当风险类型为数据库连接泄漏时,输出对应的函数调用栈和风险类型,以提示用户及时做出处理。以无侵入应用程序代码的方式,通过分析函数调用栈,准确快速地识别出有数据库连接泄露风险的函数调用栈并输出给相关人员进行处理,保证应用程序正常工作。
图3是根据本申请一个实施例的异常数据检测方法的应用场景示意图。该应用场景展示的是函数调用栈的构成。示例的,函数调用栈可以包括依序排列的框架代码数据,例如从栈顶到栈底依次为框架代码数据1、框架代码数据2、…、框架代码数据n、目标业务代码数据。通过确定目标业务代码数据之上的框架代码数据的数量,来确定风险类型。若函数调用栈中,目标业务代码数据上方只有一个框架代码数据,则可以确定该函数调用栈对应的代码块有数据库连接泄漏的风险。若目标业务代码数据上方的框架代码数据的数量超过阈值则根据框架代码数据的数量确定风险等级,并在存在数据库连接泄漏的风险时,以探针的形式,对数据库连接的调用进行拦截,并给出警示信息,以保证数据库连接的安全性。
图4是根据本申请实施例的异常数据检测装置的主要单元的示意图。如图4所示,异常数据检测装置400包括接收单元401、数量确定单元402、风险类型确定单元403和输出单元404。
接收单元401,被配置成接收异常数据检测请求,定位目标业务代码数据。
数量确定单元402,被配置成确定目标业务代码数据所在的函数调用栈,进而确定函数调用栈中目标业务代码数据之前的框架代码数据的数量。
风险类型确定单元403,被配置成根据数量,确定函数调用栈的风险类型。
输出单元404,被配置成响应于风险类型为数据库连接泄漏,输出函数调用栈和风险类型。
在一些实施例中,风险类型确定单元403进一步被配置成:响应于数量小于预设阈值,确定函数调用栈的风险类型为数据库连接泄漏。
在一些实施例中,接收单元401进一步被配置成:获取目标平台标识;将目标平台标识所在的代码数据确定为目标业务代码数据。
在一些实施例中,接收单元401进一步被配置成:调用平台标识库,以将平台标识库中的各个平台标识与各个函数调用栈中的代码段数据进行匹配,将匹配到的平台标识确定为目标平台标识。
在一些实施例中,异常数据检测装置还包括图4中未示出的拦截单元,被配置成:调用代理程序以探针的形式对函数调用栈进行的数据库连接获取进行拦截。
在一些实施例中,拦截单元进一步被配置成:基于风险类型、函数调用栈和代理程序,生成异步任务;调用线程池,以执行异步任务,调用对应的代理程序以探针的形式对函数调用栈进行的数据库连接获取进行拦截。
在一些实施例中,风险类型确定单元403进一步被配置成:响应于数量大于或等于预设阈值,确定函数调用栈的风险类型为数据库连接未泄漏。
需要说明的是,本申请的异常数据检测方法和异常数据检测装置在具体实施内容上具有相应关系,故重复内容不再说明。
图5示出了可以应用本申请实施例的异常数据检测方法或异常数据检测装置的示例性系统架构500。
如图5所示,系统架构500可以包括终端设备501、502、503,网络504和服务器505。网络504用以在终端设备501、502、503和服务器505之间提供通信链路的介质。网络504可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备501、502、503通过网络504与服务器505交互,以接收或发送消息等。终端设备501、502、503上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
终端设备501、502、503可以是具有异常数据检测处理屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器505可以是提供各种服务的服务器,例如对用户利用终端设备501、502、503所提交的异常数据检测请求提供支持的后台管理服务器(仅为示例)。后台管理服务器可以接收异常数据检测请求,定位目标业务代码数据;确定目标业务代码数据所在的函数调用栈,进而确定函数调用栈中目标业务代码数据之前的框架代码数据的数量;根据数量,确定函数调用栈的风险类型;响应于风险类型为数据库连接泄漏,输出函数调用栈和风险类型。以无侵入应用程序代码的方式,通过分析函数调用栈,准确快速地识别出有数据库连接泄露风险的函数调用栈并输出给相关人员进行处理,保证应用程序正常工作。
需要说明的是,本申请实施例所提供的异常数据检测方法一般由服务器505执行,相应地,异常数据检测装置一般设置于服务器505中。
应该理解,图5中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
下面参考图6,其示出了适于用来实现本申请实施例的终端设备的计算机系统600的结构示意图。图6示出的终端设备仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图6所示,计算机系统600包括中央处理单元(CPU)601,其可以根据存储在只读存储器(ROM)602中的程序或者从存储部分608加载到随机访问存储器(RAM)603中的程序而执行各种适当的动作和处理。在RAM603中,还存储有计算机系统600操作所需的各种程序和数据。CPU601、ROM602以及RAM603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
以下部件连接至I/O接口605:包括键盘、鼠标等的输入部分606;包括诸如阴极射线管(CRT)、液晶征信授权查询处理器(LCD)等以及扬声器等的输出部分607;包括硬盘等的存储部分608;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至I/O接口605。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装入存储部分608。
特别地,根据本申请公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本申请公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分609从网络上被下载和安装,和/或从可拆卸介质611被安装。在该计算机程序被中央处理单元(CPU)601执行时,执行本申请的系统中限定的上述功能。
需要说明的是,本申请所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元也可以设置在处理器中,例如,可以描述为:一种处理器包括接收单元、数量确定单元、风险类型确定单元和输出单元。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。
作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备接收异常数据检测请求,定位目标业务代码数据;确定目标业务代码数据所在的函数调用栈,进而确定函数调用栈中目标业务代码数据之前的框架代码数据的数量;根据数量,确定函数调用栈的风险类型;响应于风险类型为数据库连接泄漏,输出函数调用栈和风险类型。
本申请的计算机程序产品,包括计算机程序,计算机程序在被处理器执行时实现本申请实施例中的异常数据检测方法。
根据本申请实施例的技术方案,以无侵入应用程序代码的方式,通过分析函数调用栈,准确快速地识别出有数据库连接泄露风险的函数调用栈并输出给相关人员进行处理,保证应用程序正常工作。
上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。
Claims (15)
1.一种异常数据检测方法,其特征在于,包括:
接收异常数据检测请求,定位目标业务代码数据;
确定所述目标业务代码数据所在的函数调用栈,进而确定所述函数调用栈中所述目标业务代码数据之前的框架代码数据的数量;
根据所述数量,确定所述函数调用栈的风险类型;
响应于所述风险类型为数据库连接泄漏,输出所述函数调用栈和所述风险类型。
2.根据权利要求1所述的方法,其特征在于,所述确定所述函数调用栈的风险类型,包括:
响应于所述数量小于预设阈值,确定所述函数调用栈的风险类型为数据库连接泄漏。
3.根据权利要求1所述的方法,其特征在于,所述定位目标业务代码数据,包括:
获取目标平台标识;
将所述目标平台标识所在的代码数据确定为目标业务代码数据。
4.根据权利要求3所述的方法,其特征在于,所述获取目标平台标识,包括:
调用平台标识库,以将所述平台标识库中的各个平台标识与各个函数调用栈中的代码段数据进行匹配,将匹配到的平台标识确定为目标平台标识。
5.根据权利要求1所述的方法,其特征在于,在所述输出所述函数调用栈和所述风险类型之前,所述方法还包括:
调用代理程序以探针的形式对所述函数调用栈进行的数据库连接获取进行拦截。
6.根据权利要求5所述的方法,其特征在于,所述调用代理程序以探针的形式对所述函数调用栈进行的数据库连接获取进行拦截,包括:
基于所述风险类型、所述函数调用栈和代理程序,生成异步任务;
调用线程池,以执行所述异步任务,调用对应的代理程序以探针的形式对所述函数调用栈进行的数据库连接获取进行拦截。
7.根据权利要求1所述的方法,其特征在于,所述确定所述函数调用栈的风险类型,包括:
响应于所述数量大于或等于预设阈值,确定所述函数调用栈的风险类型为数据库连接未泄漏。
8.一种异常数据检测装置,其特征在于,包括:
接收单元,被配置成接收异常数据检测请求,定位目标业务代码数据;
数量确定单元,被配置成确定所述目标业务代码数据所在的函数调用栈,进而确定所述函数调用栈中所述目标业务代码数据之前的框架代码数据的数量;
风险类型确定单元,被配置成根据所述数量,确定所述函数调用栈的风险类型;
输出单元,被配置成响应于所述风险类型为数据库连接泄漏,输出所述函数调用栈和所述风险类型。
9.根据权利要求8所述的装置,其特征在于,所述风险类型确定单元进一步被配置成:
响应于所述数量小于预设阈值,确定所述函数调用栈的风险类型为数据库连接泄漏。
10.根据权利要求8所述的装置,其特征在于,所述接收单元进一步被配置成:
获取目标平台标识;
将所述目标平台标识所在的代码数据确定为目标业务代码数据。
11.根据权利要求10所述的装置,其特征在于,所述接收单元进一步被配置成:
调用平台标识库,以将所述平台标识库中的各个平台标识与各个函数调用栈中的代码段数据进行匹配,将匹配到的平台标识确定为目标平台标识。
12.根据权利要求8所述的装置,其特征在于,所述装置还包括拦截单元,被配置成:
调用代理程序以探针的形式对所述函数调用栈进行的数据库连接获取进行拦截。
13.根据权利要求12所述的装置,其特征在于,所述拦截单元进一步被配置成:
基于所述风险类型、所述函数调用栈和代理程序,生成异步任务;
调用线程池,以执行所述异步任务,调用对应的代理程序以探针的形式对所述函数调用栈进行的数据库连接获取进行拦截。
14.一种异常数据检测电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7中任一项所述的方法。
15.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311439760.8A CN117195204B (zh) | 2023-11-01 | 2023-11-01 | 异常数据检测方法、装置、电子设备及计算机可读介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311439760.8A CN117195204B (zh) | 2023-11-01 | 2023-11-01 | 异常数据检测方法、装置、电子设备及计算机可读介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117195204A true CN117195204A (zh) | 2023-12-08 |
CN117195204B CN117195204B (zh) | 2024-02-13 |
Family
ID=88990869
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311439760.8A Active CN117195204B (zh) | 2023-11-01 | 2023-11-01 | 异常数据检测方法、装置、电子设备及计算机可读介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117195204B (zh) |
Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009187350A (ja) * | 2008-02-07 | 2009-08-20 | Nec Corp | データベース接続システム、データベース接続装置およびデータベース接続方法 |
CN103092763A (zh) * | 2013-02-25 | 2013-05-08 | 用友软件股份有限公司 | 连接泄露自动分析装置和连接泄露自动分析方法 |
CN104246693A (zh) * | 2012-04-20 | 2014-12-24 | 飞思卡尔半导体公司 | 用于保护调用栈中的数据的信息处理装置和方法 |
CN109542778A (zh) * | 2018-11-12 | 2019-03-29 | 中国银联股份有限公司 | 一种资源泄露检测的方法及装置 |
CN110245508A (zh) * | 2019-06-18 | 2019-09-17 | 广东电网有限责任公司 | 数据库连接泄露的定位方法、装置、设备及可读存储介质 |
CN111431735A (zh) * | 2020-02-28 | 2020-07-17 | 平安科技(深圳)有限公司 | 连接池的管理方法、设备、装置及存储介质 |
CN112347169A (zh) * | 2020-10-26 | 2021-02-09 | 北京奇保信安科技有限公司 | 基于php框架的用户请求处理方法、装置及电子设备 |
US20210073184A1 (en) * | 2019-09-09 | 2021-03-11 | Salesforce.Com, Inc. | Lazy optimistic concurrency control |
CN112699150A (zh) * | 2021-01-04 | 2021-04-23 | 中国银联股份有限公司 | 一种数据库操作框架、方法及系统 |
CN114328206A (zh) * | 2021-12-23 | 2022-04-12 | 天津南大通用数据技术股份有限公司 | 一种能够实现高覆盖率且高效率的白盒异常测试方法 |
WO2022199284A1 (zh) * | 2021-03-22 | 2022-09-29 | 北京字节跳动网络技术有限公司 | 调用栈回溯方法、装置、设备和介质 |
CN115687052A (zh) * | 2023-01-03 | 2023-02-03 | 北京宇信科技集团股份有限公司 | 运行状态可视化监测方法、服务器和系统 |
US20230097449A1 (en) * | 2021-09-30 | 2023-03-30 | Hangzhou Moresec Technology Co., Ltd. | Method and system for intercepting dirty data |
CN115905137A (zh) * | 2021-09-30 | 2023-04-04 | 北京罗克维尔斯科技有限公司 | 一种文件描述符泄露监控方法、装置、设备及存储介质 |
CN116737818A (zh) * | 2023-08-15 | 2023-09-12 | 浩鲸云计算科技股份有限公司 | Druid数据库连接池的连接泄漏检测方法及系统 |
-
2023
- 2023-11-01 CN CN202311439760.8A patent/CN117195204B/zh active Active
Patent Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009187350A (ja) * | 2008-02-07 | 2009-08-20 | Nec Corp | データベース接続システム、データベース接続装置およびデータベース接続方法 |
CN104246693A (zh) * | 2012-04-20 | 2014-12-24 | 飞思卡尔半导体公司 | 用于保护调用栈中的数据的信息处理装置和方法 |
CN103092763A (zh) * | 2013-02-25 | 2013-05-08 | 用友软件股份有限公司 | 连接泄露自动分析装置和连接泄露自动分析方法 |
CN109542778A (zh) * | 2018-11-12 | 2019-03-29 | 中国银联股份有限公司 | 一种资源泄露检测的方法及装置 |
CN110245508A (zh) * | 2019-06-18 | 2019-09-17 | 广东电网有限责任公司 | 数据库连接泄露的定位方法、装置、设备及可读存储介质 |
US20210073184A1 (en) * | 2019-09-09 | 2021-03-11 | Salesforce.Com, Inc. | Lazy optimistic concurrency control |
CN111431735A (zh) * | 2020-02-28 | 2020-07-17 | 平安科技(深圳)有限公司 | 连接池的管理方法、设备、装置及存储介质 |
CN112347169A (zh) * | 2020-10-26 | 2021-02-09 | 北京奇保信安科技有限公司 | 基于php框架的用户请求处理方法、装置及电子设备 |
CN112699150A (zh) * | 2021-01-04 | 2021-04-23 | 中国银联股份有限公司 | 一种数据库操作框架、方法及系统 |
WO2022199284A1 (zh) * | 2021-03-22 | 2022-09-29 | 北京字节跳动网络技术有限公司 | 调用栈回溯方法、装置、设备和介质 |
US20230097449A1 (en) * | 2021-09-30 | 2023-03-30 | Hangzhou Moresec Technology Co., Ltd. | Method and system for intercepting dirty data |
CN115905137A (zh) * | 2021-09-30 | 2023-04-04 | 北京罗克维尔斯科技有限公司 | 一种文件描述符泄露监控方法、装置、设备及存储介质 |
CN114328206A (zh) * | 2021-12-23 | 2022-04-12 | 天津南大通用数据技术股份有限公司 | 一种能够实现高覆盖率且高效率的白盒异常测试方法 |
CN115687052A (zh) * | 2023-01-03 | 2023-02-03 | 北京宇信科技集团股份有限公司 | 运行状态可视化监测方法、服务器和系统 |
CN116737818A (zh) * | 2023-08-15 | 2023-09-12 | 浩鲸云计算科技股份有限公司 | Druid数据库连接池的连接泄漏检测方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN117195204B (zh) | 2024-02-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11762979B2 (en) | Management of login information affected by a data breach | |
CN108090351B (zh) | 用于处理请求消息的方法和装置 | |
CN111416811A (zh) | 越权漏洞检测方法、系统、设备及存储介质 | |
CN114281803A (zh) | 数据迁移方法、装置、设备、介质和程序产品 | |
CN113641544A (zh) | 用于检测应用状态的方法、装置、设备、介质和产品 | |
CN117195204B (zh) | 异常数据检测方法、装置、电子设备及计算机可读介质 | |
CN116028917A (zh) | 权限检测方法及装置、存储介质及电子设备 | |
CN113904828B (zh) | 接口的敏感信息检测方法、装置、设备、介质和程序产品 | |
CN115052037A (zh) | 客户端检测方法、装置、存储介质和设备 | |
CN114722401A (zh) | 一种设备安全测试方法、装置、设备及存储介质 | |
CN114205156A (zh) | 面向切面技术的报文检测方法、装置、电子设备及介质 | |
CN115296895B (zh) | 请求响应方法、装置、存储介质及电子设备 | |
CN115190008B (zh) | 故障处理方法、故障处理装置、电子设备及存储介质 | |
CN115174224B (zh) | 一种适用于工业控制网络的信息安全监测方法和装置 | |
CN113392400A (zh) | 运行环境的检测方法、装置和系统 | |
CN111885006B (zh) | 页面访问、授权访问方法和装置 | |
CN108256320B (zh) | 微分域动态检测方法及装置、设备和存储介质 | |
CN116719710A (zh) | 一种数据处理方法、装置、电子设备及计算机可读介质 | |
CN117828617A (zh) | 应用代码的漏洞检测方法和装置 | |
CN116302405A (zh) | 一种数据脱敏方法和装置 | |
CN117235725A (zh) | 软件包名的获取方法、装置、电子设备以及存储介质 | |
CN115357676A (zh) | 信息处理方法及装置、电子设备和计算机可读存储介质 | |
CN116933264A (zh) | 一种漏洞的检测方法和装置 | |
CN115993981A (zh) | 一种数据处理方法、装置、电子设备及计算机可读介质 | |
CN117852043A (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 |