CN112783751A - 一种增量代码扫描方法、装置、电子设备和存储介质 - Google Patents
一种增量代码扫描方法、装置、电子设备和存储介质 Download PDFInfo
- Publication number
- CN112783751A CN112783751A CN201911082285.7A CN201911082285A CN112783751A CN 112783751 A CN112783751 A CN 112783751A CN 201911082285 A CN201911082285 A CN 201911082285A CN 112783751 A CN112783751 A CN 112783751A
- Authority
- CN
- China
- Prior art keywords
- scanning
- code
- file
- rules
- incremental
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3628—Software debugging of optimised code
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种增量代码扫描方法、装置、电子设备和存储介质。所述方法包括:获取最近一次代码扫描的路径信息;将所述最近一次代码扫描的路径信息与本次代码扫描的路径信息进行对比,得到路径差异信息,根据所述路径差异信息确定增量代码文件;扫描所述增量代码文件,获取本次扫描的结果文件并保存。上述方案能够识别并划分出增量代码文件,然后对增量代码文件进行独立扫描,避免了对全部代码文件的重新扫描,从而提高了代码扫描效率,节省了大量的时间成本。
Description
技术领域
本发明涉及静态代码扫描技术领域,具体涉及一种增量代码扫描方法、装置、电子设备和存储介质。
背景技术
在软件代码编写完成之后需要对代码进行扫描,一般称为静态代码扫描,经扫描初步检测代码是否存在缺陷或不规范之处。
现有的扫描任务确定后,需要对所有的代码进行扫描,然后保存数据。但对同一个任务来说,每次发起扫描的时候,可能只有个别的文件进行过的修改,如果对所有的代码都扫描一遍,会浪费很多时间,假如当前扫描任务很多,还会造成任务的排队现象。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的一种增量代码扫描方法、装置、电子设备和存储介质。
依据本发明的一个方面,提供了一种增量代码扫描方法,所述方法包括:
获取最近一次代码扫描的路径信息;
将所述最近一次代码扫描的路径信息与本次代码扫描的路径信息进行对比,得到路径差异信息,根据所述路径差异信息确定增量代码文件;
扫描所述增量代码文件,获取本次扫描的结果文件并保存。
可选的,所述方法还包括:
获取最近一次扫描的结果文件,将本次扫描和最近一次扫描的结果文件合并形成本次扫描的报告。
可选的,所述增量代码文件包括新增的代码文件和经修改的代码文件,所述新增的代码文件根据所述路径差异信息直接确定,所述经修改的代码文件根据代码修改日志或代码管理系统预置的检测插件确定。
可选的,所述扫描所述增量代码文件的扫描规则包括如下的一种或多种:
多语言扫描规则、代码行扫描规则、漏洞扫描规则、复杂度扫描规则、重复率扫描规则。
可选的,所述扫描所述增量代码文件还包括:
若扫描规则为多个,则并行运行各所述扫描规则,扫描的耗时为每个扫描引擎所需时间的最大值。
可选的,所述扫描所述增量代码文件还包括:
若存在预设的扫描规则,则根据预设的扫描规则进行扫描;
若不存在预设的扫描规则,则获取历史扫描偏好,根据所述历史扫描偏好进行扫描。
可选的,所述获取历史扫描偏好包括:
根据所述扫描日志的记载,获取历史扫描偏好。
依据本发明的另一个方面,提供了一种增量代码扫描装置,所述装置包括:
路径获取单元,适于获取最近一次代码扫描的路径信息;
增量代码确定单元,适于将所述最近一次代码扫描的路径信息与本次代码扫描的路径信息进行对比,得到路径差异信息,根据所述路径差异信息确定增量代码文件;
扫描单元,适于扫描所述增量代码文件,获取本次扫描的结果文件并保存。
可选的,所述装置还包括报告生成单元,适于:
获取最近一次扫描的结果文件,将本次扫描和最近一次扫描的结果文件合并形成本次扫描的报告。
可选的,所述增量代码文件包括新增的代码文件和经修改的代码文件,所述新增的代码文件根据所述路径差异信息直接确定,所述经修改的代码文件根据代码修改日志或代码管理系统预置的检测插件确定。
可选的,所述扫描所述增量代码文件的扫描规则包括如下的一种或多种:
多语言扫描规则、代码行扫描规则、漏洞扫描规则、复杂度扫描规则、重复率扫描规则。
可选的,所述扫描单元适于:
若扫描规则为多个,则并行运行各所述扫描规则,扫描的耗时为每个扫描引擎所需时间的最大值。
可选的,所述扫描单元还包括:
若存在预设的扫描规则,则根据预设的扫描规则进行扫描;
若不存在预设的扫描规则,则获取历史扫描偏好,根据所述历史扫描偏好进行扫描。
可选的,所述获取历史扫描偏好包括:
根据扫描日志的记载,获取历史扫描偏好。
依据本发明的又一方面,提供了一种电子设备,包括:处理器;以及被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行如上述任一所述的方法。
依据本发明的再一方面,提供了一种计算机可读存储介质,其中,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被处理器执行时,实现如上述任一所述的方法。
由上述可知,本发明提供了一种增量代码扫描的方案,对代码文件进行了细化和选择,通过路径对比的方式分选出增量代码文件,然后对增量代码文件进行独立的扫描。该方案虽然获取路径差异会消耗一定的时间,但这部分时间消耗,和扫描代码所需的时间相比,往往可以忽略不计;优化之后,对于代码完全一样的任务,无需再次扫描直接就能从数据库获取结果,对于代码修改后再次扫描的任务,平均速度提升70%,从而提高了代码扫描效率,节省了大量的时间成本。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了根据本发明一个实施例的增量代码扫描方法的流程示意图;
图2示出了根据本发明一个实施例的增量代码扫描装置的结构示意图;
图3示出了根据本发明一个实施例的电子设备的结构示意图;
图4示出了根据本发明一个实施例的计算机可读存储介质的结构示意图。
具体实施方式
下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。
图1示出了根据本发明一个实施例的增量代码扫描方法的流程示意图;所述方法包括:
步骤S110,获取最近一次代码扫描的路径信息。
为了完成对新进任务的扫描,提高扫描效率,需要获得增量代码文件,而增量代码文件需要与过往的代码文件的才能确定,此时,通过获取最近一次代码扫描的路径信息,然后将该路径信息与目前的代码文件路径信息是否存在区别,最终确定哪些文件是新增或修改的。一般地,该路径信息可以是gitlab系统中的url路径信息,也可以是svn系统中的路径信息,在此不作具体的限定。
步骤S120,将最近一次代码扫描的路径信息与本次代码扫描的路径信息进行对比,得到路径差异信息,根据路径差异信息确定增量代码文件;
比如,通过比较两次路径信息,如果出现某一新的分支,则说明此次任务比上一次任务增加了新的代码文件,或者通过比较获取在某一分支内新增的代码文件即为增量代码文件。
步骤S130,扫描增量代码文件,获取本次扫描的结果文件并保存。
在确定并获取上述增量代码文件之后,对该增量代码文件进行独立的扫描,获取本次扫描的结果文件并保存,由于此次扫描仅针对新增的文件,则扫描时间将被大量的缩短。
该实施例公开的上述方法,实现了某一扫描任务中的代码文件进行了细化和选择,通过路径对比的方式分选出增量代码文件,然后对增量代码文件进行独立的扫描。该方案虽然获取路径差异会消耗一定的时间,但这部分时间消耗,和扫描代码所需的时间相比,往往可以忽略不计;优化之后,对于代码完全一样的任务,无需再次扫描直接就能从数据库获取结果,对于代码修改后再次扫描的任务,平均速度提升70%,从而提高了代码扫描效率,节省了大量的时间成本。
在一个实施例中,所述方法还包括:获取最近一次扫描的结果文件,将本次扫描和最近一次扫描的结果文件合并形成本次扫描的报告。
为了获取全面的扫描信息,需要将本次增量代码文件部分的扫描结果信息与上一次扫描的结果信息进行合并计算,获取本次扫描的报告。当然,如果增量代码文件中存在本次修改的文件,此时两次扫描结果中可能存在重复的扫描信息,仅保留一份重复信息即可。
在一个实施例中,所述增量代码文件包括新增的代码文件和经修改的代码文件,新增的代码文件根据路径差异信息直接确定,经修改的代码文件根据代码修改日志或代码管理系统预置的检测插件确定。
需要说明的是,经修改的代码文件的确定需要通过比较代码服务器上的日志中的差异信息,或者获取代码管理系统预置的检测插件记录信息,进而确定哪些文件进行过修改,然后将修改过的文件拉取到本地扫描系统中来。
在一个实施例中,扫描增量代码文件的扫描规则包括如下的一种或多种:多语言扫描规则、代码行扫描规则、漏洞扫描规则、复杂度扫描规则、重复率扫描规则。
一般代码扫描系统包括多种代码扫描引擎或扫描规则,以实现不同种类或不同方面的扫描。比如多语言扫描是指根据不同的语言编写的代码采用相应语言的扫描引擎;复杂度扫描包括对代码判定结构的复杂程度的扫描,代码复杂度还包括继承深度、类耦合度、代码行数和一个总的可维护指数等指标。
重复率扫描包括建立至少一个已扫描文件集、一个未扫描文件集,对已扫描文件集和未扫描文件集中文件进行重复率扫描,并且对未扫描文件集内部的文件进行重复率扫描。重复率扫描是指每两个代码文件之间的代码行重复率数值。代码行扫描主要是获取代码文件中的行信息,包括如下的至少一项信息:总行数、空行数、注释行数;代码漏洞扫描包括对输入验证错误、SQL查询结构错误、缓冲区溢出错误中任一项或几项进行扫描,代码漏洞扫描主要检测出代码的漏洞或缺陷。
在一个实施例中,步骤S130还包括:若扫描规则为多个,则并行运行各扫描规则,扫描的耗时为每个扫描引擎所需时间的最大值。
为了提高扫描的效率,减少扫描需要的时间,在该实施例中,设置了一种能够并行扫描的规则,比如针对多语言同时存在的任务,可以采用各语言扫描引擎同时进行扫描,其中扫描的时间为扫描任务中需要时间最长的扫描需要的时间,而非各个扫描引擎的所有时间的累加,从而大大缩小了时间上的消耗。
在一个实施例中,步骤S130还包括:若存在预设的扫描规则,则根据预设的扫描规则进行扫描;若不存在预设的扫描规则,则获取历史扫描偏好,根据历史扫描偏好进行扫描。
在本实施例中,当进行代码扫描任务时,首先判断待扫描代码文件的编写人员或管理人员是否已经规定了扫描规则,所述扫描规则可以包括进行哪些方面的扫描,比如漏洞扫描、复杂度扫描、重复度扫描等,也可以规定具体进行哪些扫描项目,比如漏洞扫描中具体包括扫描哪些漏洞项,当然上述用户也可以预先设置扫描的顺序、扫描的等级等。
当代码扫描系统没有检测到用户预设的扫描规则时,则可以在扫描历史记录中获取历史扫描偏好,比如根据扫描日志等文件,查看该用户在执行以往的同类型的扫描任务时是如何扫描的,选择了哪些扫描方面的哪些项目,然后根据该历史扫描偏好对待扫描文件进行扫描。
在一个实施例中,获取历史扫描偏好包括:根据扫描日志的记载,获取历史扫描偏好。
代码扫描系统的日志会记录代码扫描的历史信息,根据历史信息就能够确定某一用户针对相同或相似的扫描任务采用的是哪些扫描规则,以及以什么顺序进行的扫描等,然后根据该历史扫描偏好确定本次任务的扫描规则。
图2示出了根据本发明一个实施例的增量代码扫描装置200的结构示意图;所述装置包括:
获取单元210,适于获取最近一次代码扫描的路径信息。
为了完成对新进任务的扫描,提高扫描效率,需要获得增量代码文件,而增量代码文件需要与过往的代码文件的才能确定,此时,通过获取最近一次代码扫描的路径信息,然后将该路径信息与目前的代码文件路径信息是否存在区别,最终确定哪些文件是新增或修改的。一般地,该路径信息可以是gitlab系统中的url路径信息,也可以是svn系统中的路径信息,在此不作具体的限定。
增量代码确定单元220,适于将最近一次代码扫描的路径信息与本次代码扫描的路径信息进行对比,得到路径差异信息,根据路径差异信息确定增量代码文件;
比如,通过比较两次路径信息,如果出现某一新的分支,则说明此次任务比上一次任务增加了新的代码文件,或者通过比较获取在某一分支内新增的代码文件即为增量代码文件。
扫描单元230,适于扫描增量代码文件,获取本次扫描的结果文件并保存。
在确定并获取上述增量代码文件之后,对该增量代码文件进行独立的扫描,获取本次扫描的结果文件并保存,由于此次扫描仅针对新增的文件,则扫描时间将被大量的缩短。
该实施例公开的上述装置,实现了某一扫描任务中的代码文件进行了细化和选择,通过路径对比的方式分选出增量代码文件,然后对增量代码文件进行独立的扫描,从而提高了代码扫描效率,节省了大量的时间成本。
在一个实施例中,所述方法还包括扫描报告生成单元,适于:获取最近一次扫描的结果文件,将本次扫描和最近一次扫描的结果文件合并形成本次扫描的报告。
在一个实施例中,增量代码文件包括新增的代码文件和经修改的代码文件,新增的代码文件根据所述路径差异信息直接确定,经修改的代码文件根据代码修改日志或代码管理系统预置的检测插件确定。
在一个实施例中,扫描所述增量代码文件的扫描规则包括如下的一种或多种:多语言扫描规则、代码行扫描规则、漏洞扫描规则、复杂度扫描规则、重复率扫描规则。
在一个实施例中,扫描单元230适于:若扫描规则为多个,则并行运行各所述扫描规则,扫描的耗时为每个扫描引擎所需时间的最大值。
在一个实施例中,扫描单元230适于:若存在预设的扫描规则,则根据预设的扫描规则进行扫描;若不存在预设的扫描规则,则获取历史扫描偏好,根据历史扫描偏好进行扫描。
在一个实施例中,获取历史扫描偏好包括:根据所述扫描日志的记载,获取历史扫描偏好。
综上所述,本发明的技术方案,对代码文件进行了细化和选择,通过路径对比的方式分选出增量代码文件,然后对增量代码文件进行独立的扫描。该方案虽然获取路径差异会消耗一定的时间,但这部分时间消耗,和扫描代码所需的时间相比,往往可以忽略不计;优化之后,对于代码完全一样的任务,无需再次扫描直接就能从数据库获取结果,对于代码修改后再次扫描的任务,平均速度提升70%,从而提高了代码扫描效率,节省了大量的时间成本。
需要说明的是:
在此提供的算法和显示不与任何特定计算机、虚拟装置或者其它设备固有相关。各种通用装置也可以与基于在此的示教一起使用。根据上面的描述,构造这类装置所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本发明并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的增量代码扫描装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
例如,图3示出了根据本发明一个实施例的电子设备的结构示意图。该电子设备300包括处理器310和被安排成存储计算机可执行指令(计算机可读程序代码)的存储器320。存储器320可以是诸如闪存、EEPROM(电可擦除可编程只读存储器)、EPROM、硬盘或者ROM之类的电子存储器。存储器320具有存储用于执行上述方法中的任何方法步骤的计算机可读程序代码331的存储空间330。例如,用于存储计算机可读程序代码的存储空间330可以包括分别用于实现上面的方法中的各种步骤的各个计算机可读程序代码331。计算机可读程序代码331可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。这些计算机程序产品包括诸如硬盘,紧致盘(CD)、存储卡或者软盘之类的程序代码载体。这样的计算机程序产品通常为例如图4所述的计算机可读存储介质。图4示出了根据本发明一个实施例的一种计算机可读存储介质的结构示意图。该计算机可读存储介质400存储有用于执行根据本发明的方法步骤的计算机可读程序代码331,可以被电子设备300的处理器310读取,当计算机可读程序代码331由电子设备300运行时,导致该电子设备300执行上面所描述的方法中的各个步骤,具体来说,该计算机可读存储介质存储的计算机可读程序代码331可以执行上述任一实施例中示出的方法。计算机可读程序代码331可以以适当形式进行压缩。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
A1、一种增量代码扫描方法,其中,所述方法包括:
获取最近一次代码扫描的路径信息;
将所述最近一次代码扫描的路径信息与本次代码扫描的路径信息进行对比,得到路径差异信息,根据所述路径差异信息确定增量代码文件;
扫描所述增量代码文件,获取本次扫描的结果文件并保存。
A2、如权利要求A1所述的方法,其中,所述方法还包括:
获取最近一次扫描的结果文件,将本次扫描和最近一次扫描的结果文件合并形成本次扫描的报告。
A3、如权利要求A1所述的方法,其中,所述增量代码文件包括新增的代码文件和经修改的代码文件,所述新增的代码文件根据所述路径差异信息直接确定,所述经修改的代码文件根据代码修改日志或代码管理系统预置的检测插件确定。
A4、如权利要求A1所述的方法,其中,所述扫描所述增量代码文件的扫描规则包括如下的一种或多种:
多语言扫描规则、代码行扫描规则、漏洞扫描规则、复杂度扫描规则、重复率扫描规则。
A5、如权利要求A4所述的方法,其中,所述扫描所述增量代码文件还包括:
若扫描规则为多个,则并行运行各所述扫描规则,扫描的耗时为每个扫描引擎所需时间的最大值。
A6、如权利要求A1所述的方法,其中,所述扫描所述增量代码文件还包括:
若存在预设的扫描规则,则根据预设的扫描规则进行扫描;
若不存在预设的扫描规则,则获取历史扫描偏好,根据所述历史扫描偏好进行扫描。
A7、如权利要求A6所述的方法,其中,所述获取历史扫描偏好包括:
根据所述扫描日志的记载,获取历史扫描偏好。
B8、一种增量代码扫描装置,其中,所述装置包括:
路径获取单元,适于获取最近一次代码扫描的路径信息;
增量代码确定单元,适于将所述最近一次代码扫描的路径信息与本次代码扫描的路径信息进行对比,得到路径差异信息,根据所述路径差异信息确定增量代码文件;
扫描单元,适于扫描所述增量代码文件,获取本次扫描的结果文件并保存。
B9、如权利要求B8所述的装置,其中,所述装置还包括报告生成单元,适于:
获取最近一次扫描的结果文件,将本次扫描和最近一次扫描的结果文件合并形成本次扫描的报告。
B10、如权利要求B8所述的装置,其中,所述增量代码文件包括新增的代码文件和经修改的代码文件,所述新增的代码文件根据所述路径差异信息直接确定,所述经修改的代码文件根据代码修改日志或代码管理系统预置的检测插件确定。
B11、如权利要求B8所述的装置,其中,所述扫描所述增量代码文件的扫描规则包括如下的一种或多种:
多语言扫描规则、代码行扫描规则、漏洞扫描规则、复杂度扫描规则、重复率扫描规则。
B12、如权利要求B11所述的装置,其中,所述扫描单元适于:
若扫描规则为多个,则并行运行各所述扫描规则,扫描的耗时为每个扫描引擎所需时间的最大值。
B13、如权利要求B8所述的装置,其中,所述扫描单元还包括:
若存在预设的扫描规则,则根据预设的扫描规则进行扫描;
若不存在预设的扫描规则,则获取历史扫描偏好,根据所述历史扫描偏好进行扫描。
B14、如权利要求B13所述的装置,其中,所述获取历史扫描偏好包括:
根据扫描日志的记载,获取历史扫描偏好。
C15、一种电子设备,其中,该电子设备包括:处理器;以及被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行如权利要求A1-A7中任一项所述的方法。
D16、一种计算机可读存储介质,其中,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被处理器执行时,实现如权利要求A1-A7中任一项所述的方法。
Claims (10)
1.一种增量代码扫描方法,其中,所述方法包括:
获取最近一次代码扫描的路径信息;
将所述最近一次代码扫描的路径信息与本次代码扫描的路径信息进行对比,得到路径差异信息,根据所述路径差异信息确定增量代码文件;
扫描所述增量代码文件,获取本次扫描的结果文件并保存。
2.如权利要求1所述的方法,其中,所述方法还包括:
获取最近一次扫描的结果文件,将本次扫描和最近一次扫描的结果文件合并形成本次扫描的报告。
3.如权利要求1所述的方法,其中,所述增量代码文件包括新增的代码文件和经修改的代码文件,所述新增的代码文件根据所述路径差异信息直接确定,所述经修改的代码文件根据代码修改日志或代码管理系统预置的检测插件确定。
4.如权利要求1所述的方法,其中,所述扫描所述增量代码文件的扫描规则包括如下的一种或多种:
多语言扫描规则、代码行扫描规则、漏洞扫描规则、复杂度扫描规则、重复率扫描规则。
5.如权利要求4所述的方法,其中,所述扫描所述增量代码文件还包括:
若扫描规则为多个,则并行运行各所述扫描规则,扫描的耗时为每个扫描引擎所需时间的最大值。
6.如权利要求1所述的方法,其中,所述扫描所述增量代码文件还包括:
若存在预设的扫描规则,则根据预设的扫描规则进行扫描;
若不存在预设的扫描规则,则获取历史扫描偏好,根据所述历史扫描偏好进行扫描。
7.如权利要求6所述的方法,其中,所述获取历史扫描偏好包括:
根据所述扫描日志的记载,获取历史扫描偏好。
8.一种增量代码扫描装置,其中,所述装置包括:
路径获取单元,适于获取最近一次代码扫描的路径信息;
增量代码确定单元,适于将所述最近一次代码扫描的路径信息与本次代码扫描的路径信息进行对比,得到路径差异信息,根据所述路径差异信息确定增量代码文件;
扫描单元,适于扫描所述增量代码文件,获取本次扫描的结果文件并保存。
9.一种电子设备,其中,该电子设备包括:处理器;以及被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行如权利要求1-7中任一项所述的方法。
10.一种计算机可读存储介质,其中,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被处理器执行时,实现如权利要求1-7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911082285.7A CN112783751A (zh) | 2019-11-07 | 2019-11-07 | 一种增量代码扫描方法、装置、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911082285.7A CN112783751A (zh) | 2019-11-07 | 2019-11-07 | 一种增量代码扫描方法、装置、电子设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112783751A true CN112783751A (zh) | 2021-05-11 |
Family
ID=75747953
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911082285.7A Pending CN112783751A (zh) | 2019-11-07 | 2019-11-07 | 一种增量代码扫描方法、装置、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112783751A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113742736A (zh) * | 2021-09-22 | 2021-12-03 | 中国银行股份有限公司 | 一种增量代码安全扫描方法和装置 |
-
2019
- 2019-11-07 CN CN201911082285.7A patent/CN112783751A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113742736A (zh) * | 2021-09-22 | 2021-12-03 | 中国银行股份有限公司 | 一种增量代码安全扫描方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11093461B2 (en) | Method for computing distinct values in analytical databases | |
US10915533B2 (en) | Extreme value computation | |
US10311053B2 (en) | Efficient processing of data extents | |
CN108108127A (zh) | 一种文件读取方法及系统 | |
CN112783749A (zh) | 一种静态代码扫描优化方法、装置、电子设备和存储介质 | |
CN103744628A (zh) | SSTable文件存储方法及装置 | |
CN109299205B (zh) | 将规划行业使用的空间数据进行入库的方法和装置 | |
US10331670B2 (en) | Value range synopsis in column-organized analytical databases | |
US20180089235A1 (en) | Method and System for Deduplicating Data | |
CN110750434A (zh) | 接口测试方法、装置、电子设备和计算机可读存储介质 | |
CN112783751A (zh) | 一种增量代码扫描方法、装置、电子设备和存储介质 | |
CN110489416B (zh) | 一种基于数据处理的信息存储方法及相关设备 | |
CN109634845B (zh) | 一种生成上下文记录文本的方法及装置 | |
US10884704B2 (en) | Sorting a table in analytical databases | |
CN105389351A (zh) | 一种指定平台的账号升级的方法和装置 | |
CN111753183A (zh) | 一种搜索结果的处理方法和装置 | |
US7996366B1 (en) | Method and system for identifying stale directories | |
US9501534B1 (en) | Extreme value computation | |
CN113031970A (zh) | 一种自动化安装部署方法和系统 | |
CN106570024B (zh) | 数据增量处理的方法和装置 | |
CN115099922B (zh) | 财务数据查询方法、系统、可读存储介质及计算机设备 | |
CN108108402B (zh) | 数据项释义更新方法和装置 | |
CN110990395B (zh) | 一种数据处理方法及装置 | |
CN113128804A (zh) | 一种数据治理方法、装置、电子设备和可读存储介质 | |
CN113806737B (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 |