CN113886818B - 业务逻辑的异常处理方法、装置、计算机设备及存储介质 - Google Patents
业务逻辑的异常处理方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN113886818B CN113886818B CN202111266363.6A CN202111266363A CN113886818B CN 113886818 B CN113886818 B CN 113886818B CN 202111266363 A CN202111266363 A CN 202111266363A CN 113886818 B CN113886818 B CN 113886818B
- Authority
- CN
- China
- Prior art keywords
- business logic
- logic
- abnormal problem
- business
- abnormal
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/554—Detecting local intrusion or implementing counter-measures involving event detection and direct action
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/243—Classification techniques relating to the number of classes
- G06F18/24323—Tree-organised classifiers
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/552—Detecting local intrusion or implementing counter-measures involving long-term monitoring or reporting
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/577—Assessing vulnerabilities and evaluating computer system security
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/30—Semantic analysis
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Computation (AREA)
- Evolutionary Biology (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Computing Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请为软件监控技术领域,本申请提供了一种业务逻辑的异常处理方法、装置、计算机设备及存储介质,其中,所述方法包括:获取待检测程序的业务逻辑,并从数据库中获取所有历史业务逻辑,分别计算业务逻辑与每个历史业务逻辑之间的相似度,筛选出与业务逻辑的相似度最大的参考业务逻辑,对业务逻辑进行分析,得到分析结果,根据分析结果判断业务逻辑是否存在异常问题,当根据分析结果判定业务逻辑存在异常问题时,判断参考业务逻辑是否存在过异常问题,当判定参考业务逻辑存在过异常问题时,根据所述异常问题获取对应的处理策略,基于处理策略对业务逻辑的异常问题进行修复,以快速、及时地对待检测程序的业务逻辑进行处理。
Description
技术领域
本申请涉及软件监控技术领域,具体而言,本申请涉及一种业务逻辑的异常处理方法、装置、计算机设备及存储介质。
背景技术
在系统的开发更新中需要对业务逻辑和技术逻辑分离,达到更快和更稳定的开发方式,系统业务的实现,由于业务逻辑的复杂性以及技术逻辑可以高度可复用,因此可以将系统实现分为业务逻辑和技术逻辑,实现了技术的高度复用,但业务逻辑也由于其复杂性,在出现异常时难以找到有效的处理方案,如涉及的支付问题、密码找回问题以及一些系统流程问题等等,开发完成之后可能发现出现某些业务逻辑异常。
发明内容
本申请的主要目的为提供一种业务逻辑的异常处理方法、装置、计算机设备及存储介质,以在业务逻辑出现异常时,快速找到有效的处理方案。
为了实现上述发明目的,本申请提供一种业务逻辑的异常处理方法,其包括以下步骤:
获取待检测程序的业务逻辑,并从数据库中获取所有历史业务逻辑;
分别计算所述业务逻辑与每个所述历史业务逻辑之间的相似度;
从所有所述历史业务逻辑中筛选出与所述业务逻辑的相似度最大的历史业务逻辑,得到参考业务逻辑;
对所述业务逻辑进行分析,得到分析结果,并根据所述分析结果判断所述业务逻辑是否存在异常问题;
当根据分析结果判定所述业务逻辑存在异常问题时,判断所述参考业务逻辑是否存在过所述异常问题;
当判定所述参考业务逻辑存在过所述异常问题时,根据所述异常问题获取对应的处理策略;
基于所述处理策略对所述业务逻辑的所述异常问题进行修复。
优选地,所述根据所述异常问题获取对应的处理策略,包括:
计算所述异常问题引起其他异常问题出现的概率;
从其他异常问题中筛选出所述异常问题引起的概率最大的其他异常问题,得到相关异常问题;
获取所述参考业务逻辑中所述相关异常问题对应的第一处理策略以及所述异常问题对应的第二处理策略,并将所述第一处理策略和所述第二处理策略作为所述处理策略。
优选地,所述分别计算所述业务逻辑与每个所述历史业务逻辑之间的相似度,包括:
获取所述业务逻辑的关键词,得到第一关键词;其中,所述第一关键词用于描述所述业务逻辑的关键信息;
分别获取每个所述历史业务逻辑的关键词,得到每个所述历史业务逻辑的第二关键词;其中,所述第二关键词用于描述所述历史业务逻辑的关键信息;
将所述第一关键词转换为向量,得到第一词向量;
分别将每个所述历史业务逻辑的第二关键词转换为向量,得到多个第二词向量;
分别计算所述第一词向量与每个所述第二词向量之间的余弦距离作为所述相似度。
优选地,当所述业务逻辑包括多个所述第一关键词时,所述将所述第一关键词转换为向量,得到第一词向量,包括:
分别将每个所述第一关键词转换为向量,得到多个词向量;
计算所述多个词向量的平均向量,将所述平均向量作为所述第一词向量。
优选地,所述对所述业务逻辑进行分析,得到分析结果,包括:
通过主成分分析法提取所述业务逻辑的数据特征;
利用多项映射方式获取所述数据特征的映射,采用逻辑回归算法或随机森林算法对所述映射进行异常问题排查,得到分析结果。
优选地,所述对所述业务逻辑进行分析,得到分析结果,包括:
将所述业务逻辑输入至预设的业务逻辑漏洞检测引擎,获取所述业务逻辑漏洞检测引擎输出的分析结果;其中,所述分析结果包括所述待检测程序是否存在业务逻辑漏洞以及存在业务逻辑漏洞时的业务逻辑漏洞类型,所述业务逻辑漏洞类型包括越权漏洞和短信炸弹漏洞。
进一步地,所述基于所述处理策略对所述业务逻辑的异常问题进行修复之后,还包括:
判断所述业务逻辑的异常问题是否修复成功;
若否,则记录所述异常问题的修复过程及无法修复的原因,将所述修复过程及所述无法修复的原因发送给预设的目标用户所在终端。
本申请还提供一种业务逻辑的异常处理装置,其包括:
第一获取模块,用于获取待检测程序的业务逻辑,并从数据库中获取所有历史业务逻辑;
计算模块,用于分别计算所述业务逻辑与每个所述历史业务逻辑之间的相似度;
筛选模块,用于从所有所述历史业务逻辑中筛选出与所述业务逻辑的相似度最大的历史业务逻辑,得到参考业务逻辑;
分析模块,用于对所述业务逻辑进行分析,得到分析结果,并根据所述分析结果判断所述业务逻辑是否存在异常问题;
判断模块,用于当根据分析结果判定所述业务逻辑存在异常问题时,判断所述参考业务逻辑是否存在过所述异常问题;
第二获取模块,用于当判定所述参考业务逻辑存在过所述异常问题时,根据所述异常问题获取对应的处理策略;
修复模块,用于基于所述处理策略对所述业务逻辑的所述异常问题进行修复。
本申请还提供一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述任一项所述方法的步骤。
本申请还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述任一项所述方法的步骤。
本申请所提供的一种业务逻辑的异常处理方法、装置、计算机设备及存储介质,获取待检测程序的业务逻辑,并从数据库中获取所有历史业务逻辑,分别计算业务逻辑与每个历史业务逻辑之间的相似度,从所有历史业务逻辑中筛选出与业务逻辑的相似度最大的历史业务逻辑,得到参考业务逻辑,对业务逻辑进行分析,得到分析结果,根据分析结果判断业务逻辑是否存在异常问题,当根据分析结果判定业务逻辑存在异常问题时,判断参考业务逻辑是否存在过异常问题,当判定参考业务逻辑存在过异常问题时,根据所述异常问题获取对应的处理策略,基于处理策略对业务逻辑的异常问题进行修复,以在业务逻辑出现异常时自动找到与该业务逻辑最相似的参考业务逻辑,基于参考业务逻辑获取有效的处理策略,利用处理策略快速、及时地对业务逻辑进行处理。
附图说明
图1为本申请一实施例的业务逻辑的异常处理方法的流程示意图;
图2为本申请一实施例的业务逻辑的异常处理装置的结构示意框图;
图3为本申请一实施例的计算机设备的结构示意框图。
本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提出的一种业务逻辑的异常处理方法,以服务器为执行主体,服务器可以是独立的服务器,也可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content Delivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。
该业务逻辑的异常处理方法用于解决业务逻辑由于其复杂性,在出现异常时难以找到有效的处理方案的技术问题。参考图1,其中一个实施例中,该业务逻辑的异常处理方法包括如下步骤:
S11、获取待检测程序的业务逻辑,并从数据库中获取所有历史业务逻辑;
S12、分别计算所述业务逻辑与每个所述历史业务逻辑之间的相似度;
S13、从所有所述历史业务逻辑中筛选出与所述业务逻辑的相似度最大的历史业务逻辑,得到参考业务逻辑;
S14、对所述业务逻辑进行分析,得到分析结果,并根据所述分析结果判断所述业务逻辑是否存在异常问题;
S15、当根据分析结果判定所述业务逻辑存在异常问题时,判断所述参考业务逻辑是否存在过所述异常问题;
S16、当判定所述参考业务逻辑存在过所述异常问题时,根据所述异常问题获取对应的处理策略;
S17、基于所述处理策略对所述业务逻辑的所述异常问题进行修复。
如上述步骤S11所述,待检测程序的业务逻辑从名称上来看,首先是业务,这个业务一般是指程序要实现的功能,即客户的业务,要实现这些业务就有一个流程,流程是按某种关系形成的一个链,链之间的关系具有一定的逻辑性,综合起来就构成了业务逻辑,可以业务逻辑图或文字的形式进行展示。例如手机终端获取到转账交易请求信息后,需要对获取到的信息形式有效性进行判断,如转账金额是否为大于零的值,转账银行卡卡号的位数是否有效等,若所有的请求信息内容的均符合形式有效性,则需要将获取到的交易请求具体信息进行组合,根据事先约定的组合方式将信息进行标准化处理。
在一实施例中,获取待检测程序的业务逻辑时,服务器可以在梳理待检测程序涉及系统接口调用部分的业务逻辑,基于该业务逻辑确定需要模拟的系统接口异常场景,为了方便描述,将需要模拟的系统接口异常场景涉及的系统接口称作目标系统接口,基于该目标系统接口可以确定指定源码位置,从指定源码位置调取业务逻辑。
本实施例还可预先收集所有历史业务逻辑,将所有历史业务逻辑存储在数据库中,其中,所述历史业务逻辑包括在过去时间段对程序进行测试过程中出现的异常业务逻辑。
如上述步骤S12所述,本实施例将业务逻辑与每个历史业务逻辑进行比较,计算业务逻辑与每个历史业务逻辑之间的相似度,该相似度用于反映当前的业务逻辑与每个历史业务逻辑的相关程度,相似度越高,则两者相关性越强,逻辑关系也越接近。具体的,在计算所述业务逻辑与每个所述历史业务逻辑之间的相似度时,若所述业务逻辑以业务逻辑图形式进行展示,业务逻辑图所示的流程为实现某一业务所必需的流程,可通过比较业务逻辑对应的业务逻辑图及每个历史业务逻辑对应的业务逻辑图来确定两者的相似度,如对比两个业务逻辑图中的输入框个数是否相同、节点数量是否一致、流程节点是否一致,则可以确定两个业务逻辑图的相似度,当输入框个数相同、节点数量一致、流程节点一致,则两个业务逻辑图的相似度越高。其中,比较输入框内的内容是否相同时,可以使用语义检测方法。
如上述步骤S13所述,本实施例根据相似度,从所有历史业务逻辑中筛选出与所述业务逻辑的相似度最大的历史业务逻辑,将与所述业务逻辑的相似度最大的历史业务逻辑作为参考业务逻辑,即从所有历史业务逻辑中筛选出与业务逻辑最接近的历史业务逻辑。
如上述步骤S14-S17所述,本实施例对业务逻辑进行分析,得到分析结果,分析结果包括节点数量是否缺失、流程节点的连接是否出错,以根据分析结果判断业务逻辑是否存在异常问题,当根据分析结果判定业务逻辑存在异常问题时,则进一步判断参考业务逻辑是否存在过异常问题,当判定所述参考业务逻辑存在过所述异常问题时,则从数据库中获取在处理该参考业务逻辑的所述异常问题时所对应的处理策略,基于该处理策略对业务逻辑的异常问题进行修复,以在出现业务逻辑出现异常时自动找到与该业务逻辑最相似的参考业务逻辑,基于参考业务逻辑获取有效的处理策略,利用处理策略及时对业务逻辑进行处理。其中,数据库中保存有处理每个历史业务逻辑的异常问题时所对应的处理策略。
本申请所提供的一种业务逻辑的异常处理方法,获取待检测程序的业务逻辑,并从数据库中获取所有历史业务逻辑,分别计算业务逻辑与每个历史业务逻辑之间的相似度,从所有历史业务逻辑中筛选出与业务逻辑的相似度最大的历史业务逻辑,得到参考业务逻辑,对业务逻辑进行分析,得到分析结果,根据分析结果判断业务逻辑是否存在异常问题,当根据分析结果判定业务逻辑存在异常问题时,判断参考业务逻辑是否存在过异常问题,当判定参考业务逻辑存在过异常问题时,根据所述异常问题获取对应的处理策略,基于处理策略对业务逻辑的异常问题进行修复,以在业务逻辑出现异常时自动找到与该业务逻辑最相似的参考业务逻辑,基于参考业务逻辑获取有效的处理策略,利用处理策略快速、及时地对业务逻辑进行处理。
在一实施例中,在步骤S16中,所述根据所述异常问题获取对应的处理策略,可具体包括:
S161、计算所述异常问题引起其他异常问题出现的概率;
S162、从其他异常问题中筛选出所述异常问题引起的概率最大的其他异常问题,得到相关异常问题;
S163、获取所述参考业务逻辑中所述相关异常问题对应的第一处理策略以及所述异常问题对应的第二处理策略,并将所述第一处理策略和所述第二处理策略作为所述处理策略。
本实施例在确定业务逻辑的异常问题后,统计该异常问题出现的次数,得到第一数值,并统计该异常问题出现时,引起其他异常问题出现的次数,得到第二数值,计算第二数值与第一数值的比值,将该比值作为所述异常问题引起其他异常问题出现的概率,并从其他异常问题中筛选出该异常问题引起出现的且概率最大的其他异常问题,将其作为该异常问题的相关异常问题,然后获取参考业务逻辑中相关异常问题的第一处理策略以及所述异常问题对应的第二处理策略,将由第一处理策略与第二处理策略组成的所述处理策略发送给开发人员所在终端,以供开发人员在开发或程序检测时参考,对相关异常问题也进行处理,减少异常问题及相关异常问题的发生。
在一实施例中,在步骤S12中,所述分别计算所述业务逻辑与每个所述历史业务逻辑之间的相似度,可具体包括:
S121、获取所述业务逻辑的关键词,得到第一关键词;其中,所述第一关键词用于描述所述业务逻辑的关键信息;
S122、分别获取每个所述历史业务逻辑的关键词,得到每个所述历史业务逻辑的第二关键词;其中,所述第二关键词用于描述所述历史业务逻辑的关键信息;
S123、将所述第一关键词转换为向量,得到第一词向量;
S124、分别将每个所述历史业务逻辑的第二关键词转换为向量,得到多个第二词向量;
S125、分别计算所述第一词向量与每个所述第二词向量之间的余弦距离作为所述相似度。
在业务逻辑及历史业务逻辑都以文字形式进行表示时,获取所述业务逻辑的关键词,得到第一关键词,该第一关键词用于描述业务逻辑的关键信息,如主要实现哪些功能,同时分别获取每个历史业务逻辑的关键词,得到每个历史业务逻辑对应的第二关键词,利用word2vec词向量工具将第一关键词转换为向量,得到第一词向量,并利用word2vec词向量工具分别将每个第二关键词转换为向量,得到每个历史业务逻辑对应的第二词向量,分别计算第一词向量与每个第二词向量之间的余弦距离,将该余弦距离作为所述相似度,用于精准评估业务逻辑与历史业务逻辑的相似度。
其中,word2vec是用一个一层的神经网络把one-hot形式的稀疏词向量映射称为一个n维(n一般为几百)的稠密向量的过程。在自然语言处理中,最细粒度的对象是词语。如果需要进行词性标注,可以有一系列的样本数据(x,y)。其中x表示词语,y表示词性,就是找到一个x->y的映射关系。但是在自然语言处理中的词语,是人类的抽象总结,是符号形式的(比如中文、英文、拉丁文等等),所以需要把他们转换成数值形式,或者——嵌入到一个数学空间里,这种嵌入方式,就叫词嵌入(word embedding),而Word2vec,就是词嵌入(wordembedding)的一种。
Word2vec词向量工具是为了得到模型训练完后的副产物——模型参数(这里特指神经网络的权重),并将这些参数,作为输入x的某种向量化的表示,这个向量便叫做——词向量。
在一实施例中,当所述业务逻辑包括多个所述第一关键词时,所述将所述第一关键词转换为向量,得到第一词向量,包括:
分别将每个所述第一关键词转换为向量,得到多个词向量;
计算所述多个词向量的平均向量,将所述平均向量作为所述第一词向量。
在本实施例中,当业务逻辑中包括多个第一关键词时,则在确定第一词向量时,先将每个第一关键词转换为向量,得到多个词向量,然后计算所述多个词向量的平均向量,将平均向量作为所述第一词向量。例如,当多个第一关键词对应的多个词向量分别为W1、W2、W3,则平均向量为
在一实施例中,在步骤S14中,所述对所述业务逻辑进行分析,得到分析结果,可具体包括:
S141、通过主成分分析法提取所述业务逻辑的数据特征;
S142、利用多项映射方式获取所述数据特征的映射,采用逻辑回归算法或随机森林算法对所述映射进行异常问题排查,得到分析结果。
本实施例根据差错规则对业务逻辑进行预处理,预处理的方法为通过主成分分析法提取业务逻辑的数据特征,再通过多项映射方式获取业务逻辑的数据特征的映射,最后采用逻辑回归算法或随机森林算法对所述映射进行异常问题排查,得到业务逻辑是否存在异常问题的分析结果。
其中,主成分分析法(Principal Component Analysis,PCA)是一种数据分析方法。其通过线性变换将数据特征变换为一组各维度线性无关的表示,可用于提取数据的主要特征分量,也可用于高维数据的降维。具体的,主成分分析法将业务逻辑的n维特征映射到k维上,这k维是全新的正交特征也被称为主成分,是在原有n维特征的基础上重新构造出来的k维特征,并从原始的空间中顺序地找一组相互正交的坐标轴,新的坐标轴的选择与数据本身是密切相关的。其中,第一个新坐标轴选择是业务逻辑中方差最大的方向,第二个新坐标轴选取是与第一个坐标轴正交的平面中使得方差最大的,第三个轴是与第1,2个轴正交的平面中方差最大的。依此类推,可以得到n个这样的坐标轴。通过这种方式获得的新的坐标轴,此时大部分方差都包含在前面k个坐标轴中,后面的坐标轴所含的方差几乎为0,于是可以忽略余下的坐标轴,只保留前面k个含有绝大部分方差的坐标轴。因此相当于只保留包含绝大部分方差的维度特征,而忽略包含方差几乎为0的特征维度,实现对业务逻辑的数据特征的降维处理及提取。
多项映射方式又称为多项式的特征映射,其通过一定的映射,把多个数据特征分别映射入高维空间之后,在高维空间中便于对数据特征进行分类。例如拉普拉斯特征映射,可用局部的角度去构建数据特征之间的关系。如果两个数据特征很相似,那么这两个数据特征在高维空间中会表现出尽量接近,反之则在高维空间中会表现出尽量远离,以实现对数据特征的分类。其中,所述数据特征的映射包括数据特征在高维空间中的空间向量、数据特征之间的位置关系等等。
逻辑回归算法(Logistic Regression,LR)又称为逻辑回归分析方法,是分类和预测算法中的一种,可以通过当前数据的表现对未来结果发生的概率进行预测。例如,可以将购买的概率设置为因变量,将用户的特征属性,例如性别,年龄,注册时间等设置为自变量,根据特征属性预测购买的概率。本实施例则用于异常问题的预测。
随机森林算法则是通过集成学习的思想将多棵树集成的一种算法,它的基本单元是分类树,在变量的使用和数据的使用上进行随机化,即可以对映射进行随机化,生成很多分类树,再汇总分类树的结果。随机森林算法在运算量没有显著提高的前提下提高了预测精度,预测结果对缺失数据和非平衡的数据也比较稳健,可以很好地预测多达几千个变量的作用。
在一实施例中,所述对所述业务逻辑进行分析,得到分析结果,可具体包括:
将所述业务逻辑输入至预设的业务逻辑漏洞检测引擎,获取所述业务逻辑漏洞检测引擎输出的分析结果;其中,所述分析结果包括所述待检测程序是否存在业务逻辑漏洞以及存在业务逻辑漏洞时的业务逻辑漏洞类型,所述业务逻辑漏洞类型包括越权漏洞和短信炸弹漏洞。
具体地,本实施例的目的是检测应用程序是否存在业务逻辑漏洞,因此,将待检测程序称为待检测应用程序。其中,应用程序有两种模式:C/S模式和B/S模式,C/S模式的应用程序是客户端/服务器端程序,这类应用程序一般独立运行,而B/S模式的应用程序是浏览器端/服务器端应用程序,这类应用程序一般借助IE等浏览器来运行。本实施例中的应用程序可以为C/S模式的应用程序,也可以为B/S模式的应用程序,本发明实施例对此不作具体限定。
为了对待检测程序进行业务逻辑漏洞检测,本实施例首先获取待检测程序的业务逻辑,将业务逻辑输入至业务逻辑漏洞检测引擎,获取业务逻辑漏洞检测引擎输出的分析结果。需要说明的是,业务逻辑漏洞检测引擎为包括有多个业务逻辑漏洞检测组件的引擎,每一业务逻辑漏洞检测组件均能检测一种类型的业务逻辑漏洞。业务逻辑漏洞检测组件内封装有对待检测程序进行业务逻辑漏洞检测的方法,一次集成后可无限复用,极大程度上减轻了应用程序开发人员的精力投入。
在本实施例中,越权漏洞是一种很常见的业务逻辑漏洞,是由于服务器端对客户提出的数据操作请求过分信任,忽略了对该用户操作权限的判定,导致修改相关参数就可以拥有了其他用户的增、删、查、改功能,从而导致越权漏洞。短信炸弹漏洞也是一种很常见的业务逻辑漏洞,是指程序被恶意用户利用,不停地往一手机号码发重复的垃圾短信。
在一实施例中,所述基于所述处理策略对所述业务逻辑的异常问题进行修复之后,还包括:
判断所述业务逻辑的异常问题是否修复成功;
若否,则记录所述异常问题的修复过程及无法修复的原因,将所述修复过程及所述无法修复的原因发送给预设的目标用户所在终端。
本实施例实时记录所述异常问题的修复过程及无法修复的原因,并判断业务逻辑的异常问题是否成功修复,若判定业务逻辑的异常问题未成功修复,则需要记录无法修复的原因,将修复过程及无法修复的原因发送给预设的目标用户所在终端,如开发人员所在终端,以使开发人员基于修复过程及无法修复的原因对异常问题进行人工修复。
参照图2,本申请实施例中还提供一种业务逻辑的异常处理装置,包括:
第一获取模块11,用于获取待检测程序的业务逻辑,并从数据库中获取所有历史业务逻辑;
计算模块12,用于分别计算所述业务逻辑与每个所述历史业务逻辑之间的相似度;
筛选模块13,用于从所有所述历史业务逻辑中筛选出与所述业务逻辑的相似度最大的历史业务逻辑,得到参考业务逻辑;
分析模块14,用于对所述业务逻辑进行分析,得到分析结果,并根据所述分析结果判断所述业务逻辑是否存在异常问题;
判断模块15,用于当根据分析结果判定所述业务逻辑存在异常问题时,判断所述参考业务逻辑是否存在过所述异常问题;
第二获取模块16,用于当判定所述参考业务逻辑存在过所述异常问题时,根据所述异常问题获取对应的处理策略;
修复模块17,用于基于所述处理策略对所述业务逻辑的所述异常问题进行修复。
在本实施例中,待检测程序的业务逻辑从名称上来看,首先是业务,这个业务一般是指程序要实现的功能,即客户的业务,要实现这些业务就有一个流程,流程是按某种关系形成的一个链,链之间的关系具有一定的逻辑性,综合起来就构成了业务逻辑,可以业务逻辑图或文字的形式进行展示。例如手机终端获取到转账交易请求信息后,需要对获取到的信息形式有效性进行判断,如转账金额是否为大于零的值,转账银行卡卡号的位数是否有效等,若所有的请求信息内容的均符合形式有效性,则需要将获取到的交易请求具体信息进行组合,根据事先约定的组合方式将信息进行标准化处理。
在一实施例中,获取待检测程序的业务逻辑时,服务器可以在梳理待检测程序涉及系统接口调用部分的业务逻辑,基于该业务逻辑确定需要模拟的系统接口异常场景,为了方便描述,将需要模拟的系统接口异常场景涉及的系统接口称作目标系统接口,基于该目标系统接口可以确定指定源码位置,从指定源码位置调取业务逻辑。
本实施例还可预先收集所有历史业务逻辑,将所有历史业务逻辑存储在数据库中,其中,所述历史业务逻辑包括在过去时间段对程序进行测试过程中出现的异常业务逻辑。
本实施例将业务逻辑与每个历史业务逻辑进行比较,计算业务逻辑与每个历史业务逻辑的之间相似度,该相似度用于反映当前的业务逻辑与每个历史业务逻辑的相关程度,相似度越高,则两者相关性越强,逻辑关系也越接近。具体的,在计算所述业务逻辑与每个所述历史业务逻辑之间的相似度时,若所述业务逻辑以业务逻辑图形式进行展示,业务逻辑图所示的流程为实现某一业务所必需的流程,可通过比较业务逻辑对应的业务逻辑图及每个历史业务逻辑对应的业务逻辑图来确定两者的相似度,如对比两个业务逻辑图中的输入框个数是否相同、节点数量是否一致、流程节点是否一致,则可以确定两个业务逻辑图的相似度,当输入框个数相同、节点数量一致、流程节点一致,则两个业务逻辑图的相似度越高。其中,比较输入框内的内容是否相同时,可以使用语义检测方法。
本实施例根据相似度,从所有历史业务逻辑中筛选出与所述业务逻辑的相似度最大的历史业务逻辑,将与所述业务逻辑的相似度最大的历史业务逻辑作为参考业务逻辑,即从所有历史业务逻辑中筛选出与业务逻辑最接近的历史业务逻辑。
本实施例对业务逻辑进行分析,得到分析结果,分析结果包括节点数量是否缺失、流程节点的连接是否出错,以根据分析结果判断业务逻辑是否存在异常问题,当根据分析结果判定业务逻辑存在异常问题时,则进一步判断参考业务逻辑是否存在过异常问题,当判定所述参考业务逻辑存在过所述异常问题时,则从数据库中获取在处理该参考业务逻辑的所述异常问题时所对应的处理策略,基于该处理策略对业务逻辑的异常问题进行修复,以在出现业务逻辑出现异常时自动找到与该业务逻辑最相似的参考业务逻辑,基于参考业务逻辑获取有效的处理策略,利用处理策略及时对业务逻辑进行处理。其中,数据库中保存有处理每个历史业务逻辑的异常问题时所对应的处理策略。
如上所述,可以理解地,本申请中提出的所述业务逻辑的异常处理装置的各组成部分可以实现如上所述业务逻辑的异常处理方法任一项的功能,具体结构不再赘述。
参照图3,本申请实施例中还提供一种计算机设备,其内部结构可以如图3所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设计的处理器用于提供计算和控制能力。该计算机设备的存储器包括存储介质、内存储器。该存储介质存储有操作系统、计算机程序和数据库。该内存器为存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储处理策略、业务逻辑等数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种业务逻辑的异常处理方法。
上述处理器执行上述的业务逻辑的异常处理方法,包括:
获取待检测程序的业务逻辑,并从数据库中获取所有历史业务逻辑;
分别计算所述业务逻辑与每个所述历史业务逻辑之间的相似度;
从所有所述历史业务逻辑中筛选出与所述业务逻辑的相似度最大的历史业务逻辑,得到参考业务逻辑;
对所述业务逻辑进行分析,得到分析结果,并根据所述分析结果判断所述业务逻辑是否存在异常问题;
当根据分析结果判定所述业务逻辑存在异常问题时,判断所述参考业务逻辑是否存在过所述异常问题;
当判定所述参考业务逻辑存在过所述异常问题时,根据所述异常问题获取对应的处理策略;
基于所述处理策略对所述业务逻辑的所述异常问题进行修复。
本申请一实施例还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现一种业务逻辑的异常处理方法,包括步骤:
获取待检测程序的业务逻辑,并从数据库中获取所有历史业务逻辑;
分别计算所述业务逻辑与每个所述历史业务逻辑之间的相似度;
从所有所述历史业务逻辑中筛选出与所述业务逻辑的相似度最大的历史业务逻辑,得到参考业务逻辑;
对所述业务逻辑进行分析,得到分析结果,并根据所述分析结果判断所述业务逻辑是否存在异常问题;
当根据分析结果判定所述业务逻辑存在异常问题时,判断所述参考业务逻辑是否存在过所述异常问题;
当判定所述参考业务逻辑存在过所述异常问题时,根据所述异常问题获取对应的处理策略;
基于所述处理策略对所述业务逻辑的所述异常问题进行修复。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的和实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双速据率SDRAM(SSRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
综上所述,本申请的最大有益效果在于:
本申请所提供的一种业务逻辑的异常处理方法、装置、计算机设备及存储介质,获取待检测程序的业务逻辑,并从数据库中获取所有历史业务逻辑,分别计算业务逻辑与每个历史业务逻辑之间的相似度,从所有历史业务逻辑中筛选出与业务逻辑的相似度最大的历史业务逻辑,得到参考业务逻辑,对业务逻辑进行分析,得到分析结果,根据分析结果判断业务逻辑是否存在异常问题,当根据分析结果判定业务逻辑存在异常问题时,判断参考业务逻辑是否存在过异常问题,当判定参考业务逻辑存在过异常问题时,根据所述异常问题获取对应的处理策略,基于处理策略对业务逻辑的异常问题进行修复,以在业务逻辑出现异常时自动找到与该业务逻辑最相似的参考业务逻辑,基于参考业务逻辑获取有效的处理策略,利用处理策略快速、及时地对业务逻辑进行处理。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
以上所述仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。
Claims (7)
1.一种业务逻辑的异常处理方法,其特征在于,包括:
获取待检测程序的业务逻辑,并从数据库中获取所有历史业务逻辑;
分别计算所述业务逻辑与每个所述历史业务逻辑之间的相似度;
从所有所述历史业务逻辑中筛选出与所述业务逻辑的相似度最大的历史业务逻辑,得到参考业务逻辑;
对所述业务逻辑进行分析,得到分析结果,并根据所述分析结果判断所述业务逻辑是否存在异常问题;
当根据分析结果判定所述业务逻辑存在异常问题时,判断所述参考业务逻辑是否存在过所述异常问题;
当判定所述参考业务逻辑存在过所述异常问题时,根据所述异常问题获取对应的处理策略;
基于所述处理策略对所述业务逻辑的所述异常问题进行修复;
所述分别计算所述业务逻辑与每个所述历史业务逻辑之间的相似度,包括:
获取所述业务逻辑的关键词,得到第一关键词;其中,所述第一关键词用于描述所述业务逻辑的关键信息;
分别获取每个所述历史业务逻辑的关键词,得到每个所述历史业务逻辑的第二关键词;其中,所述第二关键词用于描述所述历史业务逻辑的关键信息;
将所述第一关键词转换为向量,得到第一词向量;
分别将每个所述历史业务逻辑的第二关键词转换为向量,得到多个第二词向量;
分别计算所述第一词向量与每个所述第二词向量之间的余弦距离作为所述相似度;
所述业务逻辑包括多个所述第一关键词时,所述将所述第一关键词转换为向量,得到第一词向量,包括:
分别将每个所述第一关键词转换为向量,得到多个词向量;
计算所述多个词向量的平均向量,将所述平均向量作为所述第一词向量;
所述对所述业务逻辑进行分析,得到分析结果,包括:
通过主成分分析法提取所述业务逻辑的数据特征;
利用多项映射方式获取所述数据特征的映射,采用逻辑回归算法或随机森林算法对所述映射进行异常问题排查,得到分析结果;
其中,将需要模拟的系统接口异常场景涉及的系统接口称作目标系统接口,基于该目标系统接口确定指定源码位置,从指定源码位置调取业务逻辑;
通过比较业务逻辑对应的业务逻辑图及每个历史业务逻辑对应的业务逻辑图来确定相似度,包括对比两个业务逻辑图中的输入框个数是否相同、节点数量是否一致和/或流程节点是否一致。
2.根据权利要求1所述的方法,其特征在于,所述根据所述异常问题获取对应的处理策略,包括:
计算所述异常问题引起其他异常问题出现的概率;
从其他异常问题中筛选出所述异常问题引起的概率最大的其他异常问题,得到相关异常问题;
获取所述参考业务逻辑中所述相关异常问题对应的第一处理策略以及所述异常问题对应的第二处理策略,并将所述第一处理策略和所述第二处理策略作为所述处理策略。
3.根据权利要求1所述的方法,其特征在于,所述基于所述处理策略对所述业务逻辑的异常问题进行修复之后,还包括:
判断所述业务逻辑的异常问题是否修复成功;
若否,则记录所述异常问题的修复过程及无法修复的原因,将所述修复过程及所述无法修复的原因发送给预设的目标用户所在终端。
4.根据权利要求1所述的方法,其特征在于,所述对所述业务逻辑进行分析,得到分析结果,包括:
将所述业务逻辑输入至预设的业务逻辑漏洞检测引擎,获取所述业务逻辑漏洞检测引擎输出的分析结果;其中,所述分析结果包括所述待检测程序是否存在业务逻辑漏洞以及存在业务逻辑漏洞时的业务逻辑漏洞类型,所述业务逻辑漏洞类型包括越权漏洞和短信炸弹漏洞。
5.一种业务逻辑的异常处理装置,用于执行权利要求1-4中任意一项所述的方法,其特征在于,包括:
第一获取模块,用于获取待检测程序的业务逻辑,并从数据库中获取所有历史业务逻辑;
计算模块,用于分别计算所述业务逻辑与每个所述历史业务逻辑之间的相似度;
筛选模块,用于从所有所述历史业务逻辑中筛选出与所述业务逻辑的相似度最大的历史业务逻辑,得到参考业务逻辑;
分析模块,用于对所述业务逻辑进行分析,得到分析结果,并根据所述分析结果判断所述业务逻辑是否存在异常问题;
判断模块,用于当根据分析结果判定所述业务逻辑存在异常问题时,判断所述参考业务逻辑是否存在过所述异常问题;
第二获取模块,用于当判定所述参考业务逻辑存在过所述异常问题时,根据所述异常问题获取对应的处理策略;
修复模块,用于基于所述处理策略对所述业务逻辑的所述异常问题进行修复。
6.一种计算机设备,其特征在于,包括:
处理器;
存储器;
其中,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现权利要求1至4任一项所述的业务逻辑的异常处理方法。
7.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现权利要求1-4任一项所述的业务逻辑的异常处理方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202111266363.6A CN113886818B (zh) | 2021-10-28 | 2021-10-28 | 业务逻辑的异常处理方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202111266363.6A CN113886818B (zh) | 2021-10-28 | 2021-10-28 | 业务逻辑的异常处理方法、装置、计算机设备及存储介质 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN113886818A CN113886818A (zh) | 2022-01-04 |
| CN113886818B true CN113886818B (zh) | 2024-12-03 |
Family
ID=79014091
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202111266363.6A Active CN113886818B (zh) | 2021-10-28 | 2021-10-28 | 业务逻辑的异常处理方法、装置、计算机设备及存储介质 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN113886818B (zh) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN115168422A (zh) * | 2022-07-14 | 2022-10-11 | 中国银行股份有限公司 | 一种业务数据的处理方法及装置、电子设备、存储介质 |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN110032872A (zh) * | 2019-05-08 | 2019-07-19 | 北京国舜科技股份有限公司 | 一种业务逻辑漏洞检测方法及装置 |
| CN111190576A (zh) * | 2019-12-17 | 2020-05-22 | 平安医疗健康管理股份有限公司 | 基于文字识别的组件集展示方法、装置和计算机设备 |
Family Cites Families (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN110870279B (zh) * | 2017-06-29 | 2021-10-26 | 亚马逊技术有限公司 | 安全策略分析器服务和可满足性引擎 |
| CN108932426B (zh) * | 2018-06-27 | 2022-05-03 | 平安科技(深圳)有限公司 | 越权漏洞检测方法和装置 |
| CN113254728B (zh) * | 2021-06-24 | 2023-12-05 | 中国平安人寿保险股份有限公司 | 任务信息展示方法、装置、电子设备及存储介质 |
-
2021
- 2021-10-28 CN CN202111266363.6A patent/CN113886818B/zh active Active
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN110032872A (zh) * | 2019-05-08 | 2019-07-19 | 北京国舜科技股份有限公司 | 一种业务逻辑漏洞检测方法及装置 |
| CN111190576A (zh) * | 2019-12-17 | 2020-05-22 | 平安医疗健康管理股份有限公司 | 基于文字识别的组件集展示方法、装置和计算机设备 |
Also Published As
| Publication number | Publication date |
|---|---|
| CN113886818A (zh) | 2022-01-04 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN110765265B (zh) | 信息分类抽取方法、装置、计算机设备和存储介质 | |
| CN111176990B (zh) | 基于数据决策的测试数据生成方法、装置、计算机设备 | |
| CN109949154B (zh) | 客户信息分类方法、装置、计算机设备和存储介质 | |
| WO2020253358A1 (zh) | 业务数据的风控分析处理方法、装置和计算机设备 | |
| CN109508903B (zh) | 风险评估方法、装置、计算机设备和存储介质 | |
| CN109063921B (zh) | 客户风险预警的优化处理方法、装置、计算机设备和介质 | |
| CN115499164B (zh) | 一种基于图神经网络的多特征融合区块链智能合约漏洞检测方法、装置、计算机及存储介质 | |
| CN113888299A (zh) | 风控决策方法、装置、计算机设备和存储介质 | |
| CN113421007A (zh) | 风险包裹的识别方法、装置、设备和存储介质 | |
| CN117891749A (zh) | Api应用安全监测方法、装置、设备及存储介质 | |
| US20260030355A1 (en) | Cyber threat information processing apparatus, cyber threat information processing method, and storage medium storing cyber threat information processing program | |
| CN112363929B (zh) | 系统上线方法、装置、计算机设备及存储介质 | |
| CN117579332A (zh) | 网络威胁检测方法和装置 | |
| CN114692785B (zh) | 行为分类方法、装置、设备及存储介质 | |
| CN119691747A (zh) | 混合模型驱动的可重入漏洞检修方法、装置和计算机设备 | |
| CN119249411A (zh) | 基于ai的入侵防护应答数据处理方法及服务器 | |
| CN115168865A (zh) | 基于领域自适应的跨项目漏洞检测模型 | |
| CN113886818B (zh) | 业务逻辑的异常处理方法、装置、计算机设备及存储介质 | |
| CN118378299A (zh) | 文档脱敏方法、装置、计算机程序产品及电子设备 | |
| CN113947076A (zh) | 保单数据的检测方法、装置、计算机设备及存储介质 | |
| CN112613072B (zh) | 基于档案大数据的信息管理方法、管理系统及管理云平台 | |
| CN114356405B (zh) | 开源组件函数的匹配方法、装置、计算机设备和存储介质 | |
| CN117938534A (zh) | 一种基于ai模型的web应用安全防护方法及装置 | |
| CN116668113A (zh) | 改进的cvae-gan生成流量对抗样本的方法及设备 | |
| CN117081801A (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 |