一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

第三方软件包处理方法、工具及存储介质与流程

2021-12-07 21:12:00 来源:中国专利 TAG:


1.本技术涉及互联网技术领域,尤其涉及一种第三方软件包处理方法、工具及存储介质。


背景技术:

2.在编写程序的过程中,通常需要使用到大量的第三方软件包。然而,在加入第三方软件按包时,用户往往会忽略对第三方软件包进行安全检测,查看所需要安装的软件包是否存在漏洞,或者,当第三方软件包存在漏洞问题时,需要用户进行人工搜索的方式找到符合需求的软件包,操作极不方便。
3.上述内容仅用于辅助理解本技术的技术方案,并不代表承认上述内容是现有技术。


技术实现要素:

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.获取模块,当添加第三方软件包时,获取所述第三方软件包的记录文档;
31.判断模块,根据所述记录文档判断所述第三方软件包是否存在软件漏洞;提示模块,当所述第三方软件包存在软件漏洞时,则发出风险提示信息,并提供处理方案修补存在的软件漏洞。
32.此外,为实现上述目的,本技术另一方面还提供一种计算机可读存储介质,其特征在于,其上存储有第三方软件包处理程序,其特征在于,所述第三方软件包处理程序被处理器执行时实现如上中任一项所述的方法的步骤。
33.本技术提出了一种第三方软件处理方法,该方法在编程的过程中检测到加入第三方软件包时,自动获取软件包对应的记录文档,根据记录文档的判断所述第三方软件包是否存在影响当前编写的程序运行的软件漏洞,若存在,则发出风险提示信息,并提供处理方案修补存在的软件漏洞。通过上述方式,使得在编写程序的过程中在检测到使用的第三方软件包出现软件漏洞时,能够为编程人员提供解决软件漏洞问题的方案,不需要编程人员根据添加的第三方软件包信息到360安全应急响应中心等软件漏洞发表平台上查找对应的第三方软件包是否存在软件漏洞,更不需要到第三方软件包的官网查找可替代所述存在软件漏洞的第三方软件包的替代程序,实现了自动检测第三方软件包的漏洞,并在第三方软件包存在漏洞时提供对应的处理方法,节省了人力成本。
附图说明
34.图1为本技术实施例方案涉及的装置的结构示意图;
35.图2为本技术第三方软件包处理方法一实施例的流程示意图;
36.图3为本技术第三方软件包处理方法步骤s10流程示意图;
37.图4为本技术第三方软件包处理方法步骤s13的详细流程示意图;
38.图5为本技术第三方软件包处理方法本技术的另一实施例的流程示意图;
39.图6为本技术第三方软件包处理方法步骤s30的流程示意图;
40.图7为本技术第三方软件包处理方法另一实施例的流程示意图;
41.图8为本技术本技术第三方软件包处理方法的又一实施例流程示意图;
42.图9为本技术实施例方案涉及的第三方软件漏洞扫描工具所包含的模块示意图。
43.本技术目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
44.应当理解,此处所描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
45.本技术实施例的主要解决方案是:当添加第三方软件包时,获取所述第三方软件包的记录文档;根据所述记录文档判断所述第三方软件包是否存在软件漏洞;当所述第三方软件包存在软件漏洞时,则发出风险提示信息,并提供处理方案修补存在的软件漏洞。
46.由于现有技术在编程的过程中通常是直接在编写的程序中加入第三方软件包,忽略了对其进行软件漏洞扫描,以减少程序运行时由于第三方软件包存在漏洞问题导致程序运行失败,或者通过人工的方式将第三方软件包在病毒扫描软件进行检测,在检测出问题时,再通过到官网下载可代替的软件包。这种通过人工搜索的方式对第三方软件包进行软件漏洞扫描以及搜索可代替的软件包的方式操作极为不便。
47.本发明提供上述的解决方案,旨在实现自动对第三方软件包进行软件漏洞扫描以及在第三方软件包出现软件漏洞时,提供解决的方案。
48.在本技术实施例中,如图1所示,图1是本技术实施例方案涉及的装置的硬件运行环境的终端结构示意图。
49.如图1所示,该终端可以包括:处理器1001,例如cpu,网络接口1004,用户接口1003,存储器1005,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(display)、输入单元比如键盘(keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如wi-fi接口)。存储器1005可以是高速ram存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
50.本领域技术人员可以理解,图1中示出的终端结构并不构成对终端设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
51.如图1所示,作为一种计算机可读存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及第三方软件包处理程序。
52.本技术还提供一种第三方软件处理方法。
53.参照图2,提出本技术第三方软件包处理方法的一实施例。在本实施中,所述第三方软件包处理方法包括:
54.步骤s10,当添加第三方软件包时,获取所述第三方软件包的记录文档;
55.实时检测用户创建的项目工程是否添加了第三方软件包,所述第三方软件包为实现特定功能的程序,如用于简化日期和时间操作的java工具—date4j,第三方软件包的添
加方式可以为通过在项目的资源目录下将第三方软件包导入到项目。在检测到有第三方软件包导入时,则获取第三方软件包的记录文档,所述记录文档记录了第三方软件包的组织名、包名以及对应的版本号等信息。
56.具体的,参照图3,所述获取所述第三方软件包的记录文档的步骤,包括:
57.步骤s11,获取所述第三发软件包的后缀名命名方式;
58.步骤s12,根据所述后缀名命名方式确定所述第三方软件包的项目工程的构建方式;
59.步骤s13,根据所述构建方式获取第三方软件包的记录文档。
60.其中,参照图4,所述根据所述构建方式获取第三方软件包的记录文档的步骤包括,包括:
61.步骤s131,根据所述第三方构建方式读取第三方软件包的组织名以及版本号;
62.步骤s132,根据所述组织名以及版本号生成第三方软件包的记录文档,以执行获取第三方软件包的记录文档的步骤。
63.在添加第三方软件包时直接获取第三方软件包的后缀名命名方式,第三方软件包的命名方式有build.gradle、pom.xml以及.jar。若所述后缀名命名方式为build.gradle,确定添加第三方软件包的项目工程是使用gradle构建方式;若所述后缀名命名方式为pom.xml,确定添加第三方软件包的项目工程是使用maven构建方式;若所述后缀名命名方式为.jar,确定添加第三方软件包的项目工程是使用jar包的构建方式。
64.在项目工程是使用gradle构建方式时,读取build.gradle文件并使用正则表达式的方式读取compile'javax.servlet(组织名):javax.servlet-api(包名):3.1.0(版本)'行,并将组织名,包名以及版本号记录到文档中,生成第三方软件包的记录文档。
65.如果是基于maven的构建方式,读取pom.xml文件,使用xml的读取方式读取以下格式,并将组织名,包名以及版本号记录到文档中,生成第三方软件包的记录文档。
66.如果是基于jar包的引用,则扫描该工程下所有.jar后缀命名的包,并将其组织名,包名以及版本号记录到文档中,生成第三方软件包的记录文档。
67.步骤s20,根据所述记录文档判断所述第三方软件包是否存在软件漏洞;
68.所述第三方软件包漏洞包括影响sql数据的安全性、逻辑缺陷漏洞等影响影响软件正常使用的问题。获取生成的记录文档后,读取记录文档中第三方软件包的版本号,将所述版本号发送到本地数据库中进行对比,查看本地数据库是否存在与所述版本号一致的第三方软件包,当存在时,则通过在本地数据库中存储的第三方软件包版本号所映射的软件漏洞信息确定添加的第三方软件包是否存在软件漏洞。所述本地数据库存储有各个版本的第三方软件包及与其对应的软件漏洞等信息。可以理解的是,如果在本地数据库中不存在与添加的第三方软件包版本号相同的软件漏洞信息,则将获取的所述第三方软件包版本信息发送至信息安全漏洞共享平台或者360安全应急响应中心等软件漏洞检测平台,确定对应版本的第三方软件包是否存在软件漏洞。
69.步骤s30,当所述第三方软件包存在软件漏洞时,则发出风险提示信息,并提供处理方案。
70.当接收到第三方软件包存在漏洞时,则发送风险提示信息提示用户当前项目工程中添加的软件包存在风险。可选的,可将在本地存储的数据库中获取第三方软件包的软件
漏洞对应的风险等级,将所述风险等级以及对应的漏洞信息发送至终端,能够让编程人员了解所添加的第三方软件包存在的软件漏洞问题。并且,能将对应的处理方法提供给编程人员,以供编程人员解决第三方软件包的软件漏洞问题。
71.在本实施例中当项目工程添加第三方软件包时,自动获取软件包对应的记录文档,根据记录文档的判断所述第三方软件包是否存在影响当前编写的程序运行的软件漏洞,若存在,则发出风险提示信息,并为用户提供解决的方案。通过上述方式,使得在编写程序的过程中在检测到使用的第三方软件包出现软件漏洞时,能够为编程人员提供解决软件漏洞问题的方案,不需要编程人员根据添加的第三方软件包信息到360安全应急响应中心等软件漏洞发表平台上查找对应的第三方软件包是否存在软件漏洞,更不需要到第三方软件包的官网查找可替代所述存在软件漏洞的第三方软件包的替代程序,实现了自动检测第三方软件包的漏洞,并在第三方软件包存在漏洞时提供对应的处理方法,节省了人力成本,提高了第三方软件包处理的速度。
72.参照图5,图5为本发明的另一实施例,所述获取所述第三方软件包的记录文档的步骤之后,包括:
73.步骤s14,根据所述第三方软件包的记录文档,查看所述第三方软件包的版本是否为最新发布的版本和/或下载量最大的版本;
74.在本实施例中,可使用python工具在java官网等需要下载第三方软件包的官方网站中抓取对应的版本信息存储至本地数据库中,可选地,可将第三方软件包的名称以及对应各个版本以表格的形式存储,当接收到处理器的传递的记录文档时,将文档中的项目工程添加的第三方软件包的版本号与表格中的存储的第三方软件包的版本进行对比,查看所述第三方软件包的版本是否是最新发布的版本,或者下载量最大的版本。
75.步骤s15,当所述第三方软件包的版本非最新发布的版本时,发出警告提示信息,以提示用户已发布所述第三方软件包最新发布的版本;
76.步骤s16,当所述第三方软件包的版本非下载量最大的版本时,发出警告提示信息,以提示用户存在所述第三方软件包下载量最大的版本。
77.当项目工程中添加的第三方软件包不是最新的版本发出警告的提示信息,提示用户可下载最新版本的第三方软件包。可以理解的是,第三方软件包会根据使用者的需求或者在对运行时存在的软件漏洞进行修正,亦或者对功能进行了改进,所以最新版本的第三方软件包相对与之前版本的更符合项目开发者的需求。
78.所述下载量最大的版本为在第三方软件包官网获得的下载人数最多的版本,此版本也有可能是最新的版本。可以理解的是,有可能是该版本在操作系统中比较稳定,所以下载的人数会比其它版本的第三方软件包的下载量高。当项目工程中添加的第三方软件包不是下载人数最多的版本时,发出警告提示消息,提示用户当前项目工程中使用的第三方软件包不是使用人数最多的版本。
79.参照图6,所述当所述第三方软件包存在软件漏洞时,则发出风险提示,并提供处理方案的步骤,包括:
80.步骤s31,查看所述最新发布的版本和/或下载量最大的版本的软件包是否存在软件漏洞;
81.步骤s32,当所述第三方软件包最新发布的版本不存在软件漏洞时,则提示用户使
用所述最新发布的版本;或者,
82.步骤s33,当所述第三方软件包下载量最大的版本不存在软件漏洞时,则提示用户使用所述下载量最大的版本。
83.当检测到项目工程添加的第三方软件包不是最新发布的版本或者下载量最大的版本时,获取最新版本或下载量最大的版本信息,将其发送至本地存储的数据库,查看对应的版本是否存在软件漏洞,当本地存储的数据库中不存在所述版本信息时,则到360安全应急中心查看对应版本是否存在软件漏洞。在所述第三方软件包的最新版本或者下载量最大的版本中不存在软件漏洞时,则发送提示用户使用最新版本或者下载量最大版本的第三方软件包。
84.具体的,还可通过操作系统的不同对第三方软件包进行分类,获取与项目工程运行的操作系统适用的版本,以防由于操作系统的差异造成在添加第三方软件包后影响项目工程的运行,或者加入第三方软件包后不能达到预期效果。
85.在本实施例中,当检测到项目工程添加第三方软件包时,根据第三方软件包的记录文档判断是否存在最新版本或者最流行版本,当存在时,则查看所述最新版本或者最流行版本是否存在软件漏洞,当不存在软件漏洞时,则下载最新版本或者最流行版本的第三方软件包,不需要用户进行搜索、判断,提高了第三方软件包存在漏洞时的处理,节省了人力。
86.参照图7,图7为本技术的另一实施例,所述查看所述最新发布的版本和/或下载量最大的版本的软件包是否存在软件漏洞的步骤之后,还包括:
87.步骤s34,当所述第三方软件包最新发布的版本以及下载量最大的版本存在软件漏洞时,则分析所述第三方软件包出现漏洞的原因;
88.步骤s35,根据分析结果提示用户修补所述第三方软件包。
89.当所述第三方软件包最新发布的版本以及下载量最大的版本存在软件漏洞时,则获取添加到项目工程的第三方软件包的软件漏洞问题,将所述问题发送至终端,并提出对应的修改意见,使项目工程开发人员能够通过修改意见修改第三方软件包。一可行的方案是,开发人员可以通过用鼠标点击修改意见框进入具体的位置进行修改。
90.在本实施例中,当第三方软件包的最新版本以及下载量最大的版本都存在软件漏洞时,可将添加到项目工程的第三方软件包的软件漏洞信息发送至终端,提供对应修改意见以解决软件漏洞问题。
91.参照图8,图8为本技术的又一实施例,所述获取所述第三方软件包的记录文档的步骤,还包括:
92.步骤s40,启动计时器统计当前时刻距离添加上一软件包时刻的时间间隔,在所述时间间隔达到预设的时间阈值时执行获取所述第三方软件包的记录文档的步骤。
93.可理解的是,当项目工程在预设的时间范围没有添加第三方软件包时,自动执行获取该项目工程中第三方软件包的记录文档,以对已添加到项目工程的第三方软件包进行更新或者漏洞排查(已下载的第三方软件与当前使用系统不匹配),减少第三方软件包影响程序运行。
94.此外,本技术还提供了一种第三方软件漏洞扫描工具,所述扫描包括:
95.获取模块,当添加第三方软件包时,获取所述第三方软件包的记录文档;
96.判断模块,根据所述记录文档判断所述第三方软件包是否存在软件漏洞;提示模块,当所述第三方软件包存在软件漏洞时,则发出风险提示信息,并提供处理方案修补存在的软件漏洞。
97.此外,本技术还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有第三方软件包处理程序,所述第三方软件包处理程序被处理器执行时实现上述所述的第三方软件按处理方法的步骤。
98.本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
99.本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
100.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
101.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
102.应当注意的是,在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的部件或步骤。位于部件之前的单词“一”或“一个”不排除存在多个这样的部件。本技术可以借助于包括有若干不同部件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
103.尽管已描述了本技术的可选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括可选实施例以及落入本技术范围的所有变更和修改。
104.显然,本领域的技术人员可以对本技术进行各种改动和变型而不脱离本发
105.明的精神和范围。这样,倘若本技术的这些修改和变型属于本技术权利要求及其等同技术的范围之内,则本技术也意图包含这些改动和变型在内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献