CN108563445B - 应用程序代码检测方法及服务器 - Google Patents

应用程序代码检测方法及服务器 Download PDF

Info

Publication number
CN108563445B
CN108563445B CN201810276623.XA CN201810276623A CN108563445B CN 108563445 B CN108563445 B CN 108563445B CN 201810276623 A CN201810276623 A CN 201810276623A CN 108563445 B CN108563445 B CN 108563445B
Authority
CN
China
Prior art keywords
code
user terminal
program code
abnormal
historical
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
Application number
CN201810276623.XA
Other languages
English (en)
Other versions
CN108563445A (zh
Inventor
温素剑
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ping An Technology Shenzhen Co Ltd
Original Assignee
Ping An Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Ping An Technology Shenzhen Co Ltd filed Critical Ping An Technology Shenzhen Co Ltd
Priority to CN201810276623.XA priority Critical patent/CN108563445B/zh
Priority to PCT/CN2018/097115 priority patent/WO2019184159A1/zh
Publication of CN108563445A publication Critical patent/CN108563445A/zh
Application granted granted Critical
Publication of CN108563445B publication Critical patent/CN108563445B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/43Checking; Contextual analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3628Software debugging of optimised code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/72Code refactoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/75Structural analysis for program understanding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44589Program code verification, e.g. Java bytecode verification, proof-carrying code

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明适用于计算机安全技术领域,提供了应用程序代码检测方法及服务器,该方法包括:获取各个用户终端生成的程序代码块,每个程序代码块均对应一个用户终端标识,且相同用户终端发送的不同的程序代码块对应同一个用户终端标识;根据历史异常代码数据库,检测各个用户终端发送的程序代码块中是否包含有与历史异常代码数据库中的历史异常代码相匹配的异常代码;在检测到某个程序代码块中包含有与历史异常代码数据库中的历史异常信息相对应的异常代码时,确定该程序代码块对应的用户终端标识,并向所确定的用户终端标识对应的用户终端发送代码异常警示信息。上述方法能够防止在对程序代码块部署上测试环境后可能出现的程度代码退回的问题。

Description

应用程序代码检测方法及服务器
技术领域
本发明属于计算机安全技术领域,尤其涉及应用程序代码检测方法及服务器。
背景技术
在对应用程序开发的过程中,需要对相应的程序代码做持续集成,而在对相应的程序代码做持续集成时,各个技术开发人员的关注重点往往在于提交版本构建上,而忽略了程序代码自身可能存在的问题。在对初步完成后的程序代码部署上测试环境后,很可能会接连出现一些问题导致初步完成的程序代码被退回,造成时间资源上的浪费。
发明内容
有鉴于此,本发明实施例提供了应用程序代码检测方法及服务器,以解决在对应用程序开发的过程中对初步完成的程序代码部署上测试环境后出现问题导致程序代码被退回,造成时间资源上浪费的问题。
本发明实施例的第一方面提供了一种应用程序代码检测方法,包括:
获取各个用户终端生成的程序代码块,每个程序代码块均对应一个用户终端标识,且相同用户终端发送的不同的程序代码块对应同一个用户终端标识;
根据历史异常代码数据库,检测各个用户终端发送的程序代码块中是否包含有与所述历史异常代码数据库中的历史异常代码相匹配的异常代码;其中,所述历史异常代码数据库中包括多条历史异常代码;
在检测到某个程序代码块中包含有与所述历史异常代码数据库中的历史异常信息相对应的异常代码时,确定该程序代码块对应的用户终端标识,并向所确定的用户终端标识对应的用户终端发送代码异常警示信息。
可选的,所述根据历史异常代码数据库,检测各个用户终端发送的程序代码块中是否包含有与所述历史异常代码数据库中的历史异常代码相匹配的异常代码,包括:
确定各个用户终端发送的程序代码块对应的检测方式;
根据历史异常代码数据库,通过各个程序代码块对应的检测方式对于各个程序代码进行检测,判断各个程序代码块中是否包含有与所述历史异常代码数据库中的历史异常代码相匹配的异常代码。
可选的,所述确定各个用户终端发送的程序代码块对应的检测方式,包括:
获取各个用户终端的历史代码出错率;用户终端的历史代码出错率为通过用户终端生成的程序代码对应的历史代码出错率;
根据所述历史代码出错率和各个程序代码的功能,确定对各个程序代码块的检测方式。
可选的,所述根据历史异常代码数据库,检测各个用户终端发送的程序代码块中是否包含有与所述历史异常代码数据库中的历史异常代码相匹配的异常代码,还包括:
在判断出程序代码块中包含有与所述历史异常代码数据库中的历史异常代码相匹配的异常代码时,确定异常代码在程序代码块中的位置信息;
所述向所确定的用户终端标识对应的用户终端发送代码异常警示信息,包括:
将异常代码在程序代码块中的位置信息和异常代码对应的参考代码生成所述代码异常警示信息,并发送给对应的用户终端。
可选的,所述应用程序代码检测方法还包括:
获取在预设时间段内检测出的包含异常代码的程序代码块的个数,并按照包含异常代码的程序代码块的个数,显示包含异常代码的程序代码块的个数与各个用户终端的对应关系。
本发明实施例的第二方面提供了一种服务器,包括存储器、处理器,所述存储器中存储有可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如下步骤:
获取各个用户终端生成的程序代码块,每个程序代码块均对应一个用户终端标识,且相同用户终端发送的不同程序代码块对应同一个用户终端标识;
根据历史异常代码数据库,检测各个用户终端发送的程序代码块中是否包含有与所述历史异常代码数据库中的历史异常代码相匹配的异常代码;其中,所述历史异常代码数据库中包括多条历史异常代码;
在检测到某个程序代码块中包含有与所述历史异常代码数据库中的历史异常信息相对应的异常代码时,确定该程序代码块对应的用户终端标识,并向所确定的用户终端标识对应的用户终端发送代码异常警示信息。
可选的,所述根据历史异常代码数据库,检测各个用户终端发送的程序代码块中是否包含有与所述历史异常代码数据库中的历史异常代码相匹配的异常代码,包括:
确定各个用户终端发送的程序代码块对应的检测方式;
根据历史异常代码数据库,通过各个程序代码块对应的检测方式对于各个程序代码进行检测,判断各个程序代码块中是否包含有与所述历史异常代码数据库中的历史异常代码相匹配的异常代码。
可选的,所述确定各个用户终端发送的程序代码块对应的检测方式,包括:
获取各个用户终端的历史代码出错率;用户终端的历史代码出错率为通过用户终端生成的程序代码对应的历史代码出错率;
根据所述历史代码出错率和各个程序代码的功能,确定对各个程序代码块的检测方式。
可选的,所述根据历史异常代码数据库,检测各个用户终端发送的程序代码块中是否包含有与所述历史异常代码数据库中的历史异常代码相匹配的异常代码,还包括:
在判断出程序代码块中包含有与所述历史异常代码数据库中的历史异常代码相匹配的异常代码时,确定异常代码在程序代码块中的位置信息;
所述向所确定的用户终端标识对应的用户终端发送代码异常警示信息,包括:
将异常代码在程序代码块中的位置信息和异常代码对应的参考代码生成所述代码异常警示信息,并发送给对应的用户终端。
可选的,所述处理器执行所述计算机程序时还实现如下步骤:
获取在预设时间段内检测出的包含异常代码的程序代码块的个数,并按照包含异常代码的程序代码块的个数,显示包含异常代码的程序代码块的个数与各个用户终端的对应关系。
本发明实施例的第三方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上述XX方法的步骤。
本发明实施例与现有技术相比存在的有益效果是:本发明实施例,首先获取各个用户终端生成的程序代码块,每个用户终端发送的程序代码块均对应一个用户终端标识;然后根据历史异常代码数据库,检测各个用户终端发送的程序代码块中是否包含有与所述历史异常代码数据库中的历史异常代码相匹配的异常代码;在检测到某个程序代码块中包含有与所述历史异常代码数据库中的历史异常信息相对应的异常代码时,确定该程序代码块对应的用户终端标识,并向所确定的用户终端标识对应的用户终端发送代码异常警示信息,因此上述方法能够在应用程序开发过程中获取各个用户终端生成的程序代码块,并对各个程序代码块进行检测,在检测到程序代码块存在异常代码时,发出警示信息给对应的用户终端,以提醒对应的技术开发人员进行修改,从而能够防止在对程序代码块部署上测试环境后可能出现的退回问题,能够节约应用程序开发流程对应的时间。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的应用程序代码检测方法的流程图;
图2是图1中步骤S102的实现流程图;
图3是图2中步骤S201的实现流程图;
图4是本发明实施例提供的应用程序代码检测程序的运行环境示意图;
图5是本发明实施例提供的应用程序代码检测程序的程序模块图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本发明实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本发明。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。
为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。
实施例一
图1示出了本发明实施例一提供的应用程序代码检测方法的实现流程,详述如下:
步骤S101,获取各个用户终端生成的程序代码块。
其中,每个程序代码块均对应一个用户终端标识,且相同用户终端发送的不同程序代码块对应同一个用户终端标识。
例如,每个用户终端对应一个应用程序技术开发人员,每个技术开发人员负责应用程序的一部分程序代码的开发,例如每个技术开发人员负责应用程序的一个功能模块的开发,或者多个技术开发人员负责应用程序的一个功能模块的开发,对此不予限定。
技术开发人员在对自己负责的应用程序部分进行开发时,开发软件通常会将完成的程序代码进行封块,形成程序代码块。此时,可以主动获取该应用程序块,以对该程序代码块进行检测,是否有异常代码。如何检测程序代码块中是否包含异常代码部分内容在后续步骤中详细阐述,在此不再过多说明。
本实施例中,程序代码可以为java代码、js代码、html代码、xml代码或sql脚本代码等,不以此为限。
步骤S102,根据历史异常代码数据库,检测各个用户终端发送的程序代码块中是否包含有与所述历史异常代码数据库中的历史异常代码相匹配的异常代码。
其中,所述历史异常代码数据库中可以包括多条历史异常代码。历史异常代码可以为在当前时间之前所获取到的异常代码,例如,可以为一个部门内部的各个技术员工在之前开发应用程序时所检测出的异常代码。
另外,异常代码可以是程序代码块中所包含的BUG(漏洞),异常代码的产生可能是由于技术开发人员的经验不够导致的。具体的,技术开发人员在开发应用程序时,由于经验不足可能导致目标文件中存在该技术开发人员不能预见到的异常代码(例如陷井)。
参见图2,一个实施例中,步骤S102可以通过以下过程实现:
步骤S201,确定各个用户终端发送的程序代码块对应的检测方式。
本实施例中,检测方式可以包括跳过扫描检测方式、部分扫描检测方式和全部扫描检测方式等。其中,跳过扫描检测方式为可以不对程序代码块进行扫描检测,部分扫描检测方式为可以对程序代码块进行部分扫描检测,全部扫描检测方式为需要对程序代码块进行全部扫描检测。
参见图3,作为一种可实施方式,步骤S201可以通过以下过程实现:
步骤S301,获取各个用户终端的历史代码出错率。
其中,用户终端的历史代码出错率为通过用户终端生成的程序代码对应的历史代码出错率。例如,通过某个用户终端共生产X个程序代码块,而检测到包含异常代码的程序代码块有Y个,Y小于或等于X,则该用户终端的历史代码出错率为Y/X。
步骤S302,根据所述历史代码出错率和各个程序代码的功能,确定对各个程序代码块的检测方式。
其中,对于某个用户终端,根据该用户终端的历史代码出错率和对应的程序代码的功能,确定对程序代码块的检测方式。
例如,对于历史代码出错率可以设置第一阈值。具体的,对于历史代码出错率大于第一阈值的用户终端,该用户终端生成的程序代码块对应的检测方式为全部扫描检测方式;对于历史代码出错率小于第一阈值的用户终端,若程序代码的功能为核心功能,则该用户终端生成的程序代码块对应的检测方式为全部扫描检测方式,若程序代码的功能为非核心功能,则该用户终端生成的程序代码块对应的检测方式为部分扫描检测方式。对于历史代码出错率为零的用户终端,该用户终端生成的程序代码块对应的检测方式为跳过扫描检测方式;
另外,对于各个技术开发人员的历史出错率,可以设置多个阈值和时间间隔,在某个时间段内程序代码块出错率一直低于某个阈值时,则可以更换检测方式。例如,在预设时长内,某个用户终端对应的程序代码块历史出错率一直低于第一阈值时,则可以将全部扫描检测方式更换为部分扫描检测方式;在预设时长内程序代码块历史出错率一直为零时,则可以将部分扫描检测方式更换为忽略扫描检测方式。
本实施例中,对不同用户终端生成的程序代码块采用相应的检测方式,能够针对性的对程序代码块采用不同的检测方式进行检测,以减少对某些用户终端生成的程序代码块不必要的检测时间,从而减少对整个应用程序代码的检测时间,同时还能够保证对程序代码块的检测准确度,提升对程序代码块的检测效率。
步骤S202,根据历史异常代码数据库,通过各个程序代码块对应的检测方式对于各个程序代码进行检测,判断各个程序代码块中是否包含有与所述历史异常代码数据库中的历史异常代码相匹配的异常代码。
本实施例中,检测方式可以包括多种,例如跳过扫描检测方式、部分扫描检测方式和全部扫描检测方式等。例如,所述历史异常代码数据库中包括三类历史异常代码,分别为第一类历史异常代码和第二类历史异常代码;根据预设规则将各个用户终端生成的程序代码块分为两类,分别为第一类程序代码块和第二类程序代码块。其中,第一类程序代码块为核心功能对应的程序代码块,与第一类历史异常代码对应;第二类程序代码块为非核心功能对应的程序代码块,与第二类历史异常代码对应。
根据上述设置,再结合各个用户终端对应的历史出错率,对属于第一类程序代码块的程序代码块和属于第二类程序代码块的程序代码块按照相应的检测方式进行扫描检测,具体可参照步骤S302中的相关内容,在此不再赘述。
作为一种可实施方式,所述判断各个程序代码块中是否包含有与所述历史异常代码数据库中的历史异常代码相匹配的异常代码具体可以为:对各个程序代码块,通过关键字和预设算法进行扫描检测,以检测各个程序代码块中是否包含有与所述历史异常代码相同或相近的异常代码。通过设置关键字和预设算法,能够进一步减少对目标文件的各个类别块的扫描检测时间,提高检测效率。
例如,在程序代码块中的代码与历史异常代码完全相同,或程序代码块中的代码与历史异常代码的相似度超过相似阈值时,即可判定该程序代码块中包含有与所述历史异常代码相同或相近的异常代码。
另外,在步骤S202之后,步骤S102还可以包括:在判断出程序代码块中包含有与所述历史异常代码数据库中的历史异常代码相匹配的异常代码时,确定异常代码在程序代码块中的位置信息。具体的,可以在判定程序代码块中包含有与所述历史异常代码数据库中的历史异常代码相匹配的异常代码的同时,获取异常代码在程序代码块中的位置信息。
步骤S103,在检测到某个程序代码块中包含有与所述历史异常代码数据库中的历史异常信息相对应的异常代码时,确定该程序代码块对应的用户终端标识,并向所确定的用户终端标识对应的用户终端发送代码异常警示信息。
其中,步骤S103中所述的向所确定的用户终端标识对应的用户终端发送代码异常警示信息,包括:将异常代码在程序代码块中的位置信息和异常代码对应的参考代码生成所述代码异常警示信息,并发送给对应的用户终端。
本实施例中,参考代码为供技术开发人员参考的程序代码,以便于技术开发人员根据参考代码对异常代码进行修正。参考代码可以通过统计历史程序代码得出。例如,在确定出历史异常代码时,同时将对应的参考代码也与历史异常代码一一对应的存储在历史异常代码数据库中。
可选的,在步骤S103之后,上述应用程序代码检测方法还可以包括:获取在预设时间段内检测出的包含异常代码的程序代码块的个数,并按照包含异常代码的程序代码块的个数,显示包含异常代码的程序代码块的个数与各个用户终端的对应关系。
例如,可以通过积分板显示包含异常代码的程序代码块的个数与各个用户终端的对应关系。具体的,可以将积分板的显示区域划分为多个区域,每个区域对应一个团队,显示该团队的信息包括:程序代码出错数(可以包括月度出错数和年度出错数)、团队人数、历史出错率(可以包括月度历史出错率和年度历史出错率)、完成进度(可以包括月度完成进度和年度完成进度)等信息,并根据程序出错数、历史出错率、完成进度的综合情况对各个团队进行排名,并通过预设特征对各个团队的排名变化进行标示。月度历史出错率为月度出错的程序代码块个数除以月度完成的程序代码块总数。年度历史出错率为年度内出错的程序代码块个数除以年度完成的程序代码块总数。
对于每个技术开发人员可以采用基本相同的方式进行公示,例如显示技术开发人员的:程序代码出错数(可以包括月度出错数和年度出错数)、历史出错率(可以包括月度历史出错率和年度历史出错率)、完成进度(可以包括月度完成进度和年度完成进度)等信息,并根据程序出错数、历史出错率、完成进度的综合情况对各个技术开发人员进行排名,并通过预设特征对各个技术开发人员的排名变化进行标示。
上述应用程序代码检测方法,首先获取各个用户终端生成的程序代码块,每个用户终端发送的程序代码块均对应一个用户终端标识;然后根据历史异常代码数据库,检测各个用户终端发送的程序代码块中是否包含有与所述历史异常代码数据库中的历史异常代码相匹配的异常代码;在检测到某个程序代码块中包含有与所述历史异常代码数据库中的历史异常信息相对应的异常代码时,确定该程序代码块对应的用户终端标识,并向所确定的用户终端标识对应的用户终端发送代码异常警示信息,因此上述方法能够在应用程序开发过程中获取各个用户终端生成的程序代码块,并对各个程序代码块进行检测,在检测到程序代码块存在异常代码时,发出警示信息给对应的用户终端,以提醒对应的技术开发人员进行修改,从而能够防止在对程序代码块部署上测试环境后可能出现的退回问题,能够节约应用程序开发流程对应的时间。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
实施例二
对应于上文实施例所述的应用程序代码检测方法,图4示出了本发明实施例提供的应用程序代码检测程序的运行环境示意图。为了便于说明,仅示出了与本实施例相关的部分。
在本实施例中,所述的应用程序代码检测程序400安装并运行于服务器40中。该服务器40可包括,但不仅限于,存储器401和处理器402。图5仅示出了具有组件401-402的服务器40,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。
所述存储器401在一些实施例中可以是所述服务器40的内部存储单元,例如该服务器40的硬盘或内存。所述存储器401在另一些实施例中也可以是所述服务器40的外部存储设备,例如所述服务器40上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器401还可以既包括所述终端设备40的内部存储单元也包括外部存储设备。所述存储器401用于存储安装于所述服务器40的应用软件及各类数据,例如所述应用程序代码检测程序400的程序代码等。所述存储器401还可以用于暂时地存储已经输出或者将要输出的数据。
所述处理器402在一些实施例中可以是一中央处理器(Central ProcessingUnit,CPU),微处理器或其他数据处理芯片,用于运行所述存储器401中存储的程序代码或处理数据,例如执行所述应用程序代码检测程序400等。
该服务器40还可包括显示器,所述显示器在一些实施例中可以是LED显示器、液晶显示器、触控式液晶显示器以及OLED(Organic Light-Emitting Diode,有机发光二极管)触摸器等。
请参阅图5,是本发明实施例提供的应用程序代码检测程序400的程序模块图。在本实施例中,所述的应用程序代码检测程序400可以被分割成一个或多个模块,所述一个或者多个模块被存储于所述存储器401中,并由一个或多个处理器(本实施例为所述处理器402)所执行,以完成本发明。例如,在图5中,所述的应用程序代码检测程序400可以被分割成代码接收模块501、检测模块502和警示模块503。本发明所称的模块是指能够完成特定功能的一系列计算机程序指令段,比程序更适合于描述所述应用程序代码检测程序400在所述服务器40中的执行过程。以下描述将具体介绍所述模块501-503的功能。
其中,代码接收模块501,用于获取各个用户终端生成的程序代码块,每个程序代码块均对应一个用户终端标识,且相同用户终端发送的不同程序代码块对应同一个用户终端标识。
检测模块502,用于根据历史异常代码数据库,检测各个用户终端发送的程序代码块中是否包含有与所述历史异常代码数据库中的历史异常代码相匹配的异常代码;其中,所述历史异常代码数据库中包括多条历史异常代码。
警示模块503,用于在检测到某个程序代码块中包含有与所述历史异常代码数据库中的历史异常信息相对应的异常代码时,确定该程序代码块对应的用户终端标识,并向所确定的用户终端标识对应的用户终端发送代码异常警示信息。
作为一种可实施方式,检测模块502可以用于:
确定各个用户终端发送的程序代码块对应的检测方式;
根据历史异常代码数据库,通过各个程序代码块对应的检测方式对于各个程序代码进行检测,判断各个程序代码块中是否包含有与所述历史异常代码数据库中的历史异常代码相匹配的异常代码。
可选的,检测模块502确定各个用户终端发送的程序代码块对应的检测方式的过程可以包括:
获取各个用户终端的历史代码出错率;用户终端的历史代码出错率为通过用户终端生成的程序代码对应的历史代码出错率;
根据所述历史代码出错率和各个程序代码的功能,确定对各个程序代码块的检测方式。
可选的,检测模块502还用于在判断出程序代码块中包含有与所述历史异常代码数据库中的历史异常代码相匹配的异常代码时,确定异常代码在程序代码块中的位置信息;
警示模块503用于将异常代码在程序代码块中的位置信息和异常代码对应的参考代码生成所述代码异常警示信息,并发送给对应的用户终端。
进一步的,所述的应用程序代码检测程序400还可以被分割成:
显示模块,用于获取在预设时间段内检测出的包含异常代码的程序代码块的个数,并按照包含异常代码的程序代码块的个数,显示包含异常代码的程序代码块的个数与各个用户终端的对应关系。
在本发明所提供的实施例中,应该理解到,所揭露的装置/终端设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/终端设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。

Claims (5)

1.一种应用程序代码检测方法,其特征在于,包括:
获取各个用户终端生成的程序代码块,每个程序代码块均对应一个用户终端标识,且相同用户终端发送的不同的程序代码块对应同一个用户终端标识;其中,所述程序代码块为技术开发人员在对自己负责的应用程序部分进行开发时,开发软件将每个技术开发人员完成的程序代码进行封块形成的;
根据历史异常代码数据库,检测各个用户终端发送的程序代码块中是否包含有与所述历史异常代码数据库中的历史异常代码相匹配的异常代码;其中,所述历史异常代码数据库中包括多条历史异常代码;
在检测到某个程序代码块中包含有与所述历史异常代码数据库中的历史异常信息相对应的异常代码时,确定该程序代码块对应的用户终端标识,并向所确定的用户终端标识对应的用户终端发送代码异常警示信息;所述异常代码为程序代码块中所包含的漏洞;
获取在预设时间段内检测出的包含异常代码的程序代码块的个数,并按照包含异常代码的程序代码块的个数,通过积分板显示包含异常代码的程序代码块的个数与各个用户终端的对应关系,并根据所述积分板所划分的多个区域,分别显示每个区域对应的团队的综合排名信息;
所述根据历史异常代码数据库,检测各个用户终端发送的程序代码块中是否包含有与所述历史异常代码数据库中的历史异常代码相匹配的异常代码,包括:
确定各个用户终端发送的程序代码块对应的检测方式;
根据历史异常代码数据库,通过各个程序代码块对应的检测方式对于各个程序代码进行检测,判断各个程序代码块中是否包含有与所述历史异常代码数据库中的历史异常代码相匹配的异常代码;
所述确定各个用户终端发送的程序代码块对应的检测方式,包括:
获取各个用户终端的历史代码出错率;用户终端的历史代码出错率为通过用户终端生成的程序代码对应的历史代码出错率;
根据所述历史代码出错率和各个程序代码的功能,确定对各个程序代码块的检测方式;
其中,对于历史代码出错率设置第一阈值,具体为:对于历史代码出错率大于第一阈值的用户终端,该用户终端生成的程序代码对应的检测方式为全部扫描检测方式;对于历史代码出错率小于第一阈值的用户终端,若程序代码的功能为核心功能,则该用户终端生成的程序代码块对应的检测方式为全部扫描检测方式,若程序代码的功能为非核心功能,则该用户终端生成的程序代码对应的检测方式为部分扫描检测方式;对于历史代码出错率为零的用户终端,该用户终端生成的程序代码块对应的检测方式为跳过扫描检测方式。
2.如权利要求1所述的应用程序代码检测方法,其特征在于,所述根据历史异常代码数据库,检测各个用户终端发送的程序代码块中是否包含有与所述历史异常代码数据库中的历史异常代码相匹配的异常代码,还包括:在判断出程序代码块中包含有与所述历史异常代码数据库中的历史异常代码相匹配的异常代码时,确定异常代码在程序代码块中的位置信息;
所述向所确定的用户终端标识对应的用户终端发送代码异常警示信息,包括:将异常代码在程序代码块中的位置信息和异常代码对应的参考代码生成所述代码异常警示信息,并发送给对应的用户终端。
3.一种服务器,其特征在于,包括存储器、处理器,所述存储器中存储有可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如下步骤:
获取各个用户终端生成的程序代码块,每个程序代码块均对应一个用户终端标识,且相同用户终端发送的不同的程序代码块对应同一个用户终端标识;其中,所述程序代码块为技术开发人员在对自己负责的应用程序部分进行开发时,开发软件将每个技术开发人员完成的程序代码进行封块形成的;
根据历史异常代码数据库,检测各个用户终端发送的程序代码块中是否包含有与所述历史异常代码数据库中的历史异常代码相匹配的异常代码;其中,所述历史异常代码数据库中包括多条历史异常代码;
在检测到某个程序代码块中包含有与所述历史异常代码数据库中的历史异常信息相对应的异常代码时,确定该程序代码块对应的用户终端标识,并向所确定的用户终端标识对应的用户终端发送代码异常警示信息;所述异常代码为程序代码块中所包含的漏洞;
获取在预设时间段内检测出的包含异常代码的程序代码块的个数,并按照包含异常代码的程序代码块的个数,通过积分板显示包含异常代码的程序代码块的个数与各个用户终端的对应关系,并根据所述积分板所划分的多个区域,分别显示每个区域对应的团队的综合排名信息;
所述根据历史异常代码数据库,检测各个用户终端发送的程序代码块中是否包含有与所述历史异常代码数据库中的历史异常代码相匹配的异常代码,包括:
确定各个用户终端发送的程序代码块对应的检测方式;
根据历史异常代码数据库,通过各个程序代码块对应的检测方式对于各个程序代码进行检测,判断各个程序代码块中是否包含有与所述历史异常代码数据库中的历史异常代码相匹配的异常代码;
所述确定各个用户终端发送的程序代码块对应的检测方式,包括:
获取各个用户终端的历史代码出错率;用户终端的历史代码出错率为通过用户终端生成的程序代码对应的历史代码出错率;
根据所述历史代码出错率和各个程序代码的功能,确定对各个程序代码块的检测方式;
其中,对于历史代码出错率设置第一阈值,具体为:对于历史代码出错率大于第一阈值的用户终端,该用户终端生成的程序代码对应的检测方式为全部扫描检测方式;对于历史代码出错率小于第一阈值的用户终端,若程序代码的功能为核心功能,则该用户终端生成的程序代码块对应的检测方式为全部扫描检测方式,若程序代码的功能为非核心功能,则该用户终端生成的程序代码对应的检测方式为部分扫描检测方式;对于历史代码出错率为零的用户终端,该用户终端生成的程序代码块对应的检测方式为跳过扫描检测方式。
4.如权利要求3所述的服务器,其特征在于,所述根据历史异常代码数据库,检测各个用户终端发送的程序代码块中是否包含有与所述历史异常代码数据库中的历史异常代码相匹配的异常代码,还包括:在判断出程序代码块中包含有与所述历史异常代码数据库中的历史异常代码相匹配的异常代码时,确定异常代码在程序代码块中的位置信息;
所述向所确定的用户终端标识对应的用户终端发送代码异常警示信息,包括:将异常代码在程序代码块中的位置信息和异常代码对应的参考代码生成所述代码异常警示信息,并发送给对应的用户终端。
5.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1或2所述方法的步骤。
CN201810276623.XA 2018-03-30 2018-03-30 应用程序代码检测方法及服务器 Active CN108563445B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201810276623.XA CN108563445B (zh) 2018-03-30 2018-03-30 应用程序代码检测方法及服务器
PCT/CN2018/097115 WO2019184159A1 (zh) 2018-03-30 2018-07-25 一种应用程序代码检测方法、装置、服务器及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810276623.XA CN108563445B (zh) 2018-03-30 2018-03-30 应用程序代码检测方法及服务器

Publications (2)

Publication Number Publication Date
CN108563445A CN108563445A (zh) 2018-09-21
CN108563445B true CN108563445B (zh) 2021-09-10

Family

ID=63533634

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810276623.XA Active CN108563445B (zh) 2018-03-30 2018-03-30 应用程序代码检测方法及服务器

Country Status (2)

Country Link
CN (1) CN108563445B (zh)
WO (1) WO2019184159A1 (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109408374A (zh) * 2018-09-26 2019-03-01 平安普惠企业管理有限公司 应用程序异常远程定位方法、系统、计算机设备和介质
CN109828783A (zh) * 2018-12-15 2019-05-31 中国平安人寿保险股份有限公司 基于代码的文档自动生成方法、装置、电子设备及介质
CN111045679B (zh) * 2019-01-09 2024-02-23 国家计算机网络与信息安全管理中心 一种sql注入的检测和防御方法、装置及存储介质
CN110109798A (zh) * 2019-03-19 2019-08-09 中国平安人寿保险股份有限公司 应用程序异常处理方法、装置、计算机设备及存储介质
CN111046371A (zh) * 2019-12-10 2020-04-21 上海掌门科技有限公司 用于生成设备标识的方法、电子设备和计算机可读介质
CN112948415A (zh) * 2019-12-20 2021-06-11 深圳市明源云链互联网科技有限公司 Sql语句检测方法、装置、终端设备及存储介质
CN112947907B (zh) * 2020-03-23 2024-03-12 深圳市明源云科技有限公司 一种创建代码分支的方法
CN113282514B (zh) * 2021-06-28 2023-08-15 中国平安人寿保险股份有限公司 问题数据的处理方法、装置、计算机设备和存储介质
CN113742622A (zh) * 2021-08-06 2021-12-03 广州坚和网络科技有限公司 一种网页异常检测方法及装置
CN113672507A (zh) * 2021-08-16 2021-11-19 深圳供电局有限公司 软件源代码检测方法、装置、计算机设备和存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105320591A (zh) * 2014-07-25 2016-02-10 腾讯科技(深圳)有限公司 代码检测方法及装置
CN106201861A (zh) * 2015-05-07 2016-12-07 阿里巴巴集团控股有限公司 一种代码质量的检测方法及装置
CN107291614A (zh) * 2017-05-04 2017-10-24 平安科技(深圳)有限公司 文件异常检测方法和电子设备

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102054100B (zh) * 2010-12-17 2012-09-19 中国科学院计算技术研究所 一种基于静态分析的rtl设计错误检测方法和系统
US9396094B2 (en) * 2011-07-21 2016-07-19 International Business Machines Corporation Software test automation systems and methods
CN103645985B (zh) * 2013-11-28 2017-03-22 广州视源电子科技股份有限公司 一种源代码宏配对检测方法
CN106354636A (zh) * 2016-08-25 2017-01-25 上海卓易科技股份有限公司 一种检测代码的方法及装置
CN106446691B (zh) * 2016-11-24 2019-07-05 工业和信息化部电信研究院 检测软件中集成或定制的开源项目漏洞的方法和装置
CN106681783A (zh) * 2016-12-13 2017-05-17 深圳市恒扬数据股份有限公司 一种svn代码检测方法及其系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105320591A (zh) * 2014-07-25 2016-02-10 腾讯科技(深圳)有限公司 代码检测方法及装置
CN106201861A (zh) * 2015-05-07 2016-12-07 阿里巴巴集团控股有限公司 一种代码质量的检测方法及装置
CN107291614A (zh) * 2017-05-04 2017-10-24 平安科技(深圳)有限公司 文件异常检测方法和电子设备

Also Published As

Publication number Publication date
WO2019184159A1 (zh) 2019-10-03
CN108563445A (zh) 2018-09-21

Similar Documents

Publication Publication Date Title
CN108563445B (zh) 应用程序代码检测方法及服务器
US9117025B2 (en) Tracking of code base and defect diagnostic coupling with automated triage
CN110764993A (zh) 自动化测试方法及终端设备
CN108876213B (zh) 基于区块链的产品管理方法、装置、介质及电子设备
CN109960635B (zh) 实时计算平台的监控和报警方法、系统、设备及存储介质
US20150186195A1 (en) Method of analysis application object which computer-executable, server performing the same and storage media storing the same
CN110597694A (zh) 一种监控前端页面的方法及终端
CN105074656A (zh) 管理并发谓词表达式的方法和装置
CN112671609A (zh) 一种资产普查与安全检测方法、装置及终端设备
CN113448862A (zh) 软件版本测试方法、装置及计算机设备
CN111985545A (zh) 基于人工智能的目标数据检测方法、装置、设备及介质
CN113434542B (zh) 数据关系识别方法、装置、电子设备及存储介质
US8074121B2 (en) Automated information technology error and service request correlation
CN109918385A (zh) 三方对账方法、电子装置及可读存储介质
CN105069639A (zh) 农产品质量追溯方法及装置
CN107291614B (zh) 文件异常检测方法和电子设备
CN111475186A (zh) 一种基于bmc的固件升级方法、装置、设备及介质
CN114896164A (zh) 接口优化方法、装置、电子设备及存储介质
CN111274143B (zh) 埋点测试方法、装置、设备及存储介质
CN112686759A (zh) 对账监测方法、装置、设备及介质
CN112667244A (zh) 数据校验方法、装置、电子设备及计算机可读存储介质
CN113064797B (zh) 前端监控方法、装置、电子设备及存储介质
CN113419916B (zh) 风控检查程序不间断运行方法、装置、设备及存储介质
CN116010408A (zh) U位管理方法、装置及终端
CN115840677A (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