CN117436080A - 覆盖安装校验方法、装置和计算机可读存储介质 - Google Patents
覆盖安装校验方法、装置和计算机可读存储介质 Download PDFInfo
- Publication number
- CN117436080A CN117436080A CN202210834426.1A CN202210834426A CN117436080A CN 117436080 A CN117436080 A CN 117436080A CN 202210834426 A CN202210834426 A CN 202210834426A CN 117436080 A CN117436080 A CN 117436080A
- Authority
- CN
- China
- Prior art keywords
- verification
- installation
- data
- application program
- event source
- 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
- 238000012795 verification Methods 0.000 title claims abstract description 435
- 238000009434 installation Methods 0.000 title claims abstract description 253
- 238000000034 method Methods 0.000 title claims abstract description 103
- 238000012545 processing Methods 0.000 claims abstract description 52
- 238000012216 screening Methods 0.000 claims abstract description 18
- 230000003993 interaction Effects 0.000 claims description 34
- 238000004458 analytical method Methods 0.000 claims description 28
- 230000008569 process Effects 0.000 claims description 24
- 230000001960 triggered effect Effects 0.000 claims description 16
- 238000004590 computer program Methods 0.000 claims description 8
- 238000011900 installation process Methods 0.000 abstract description 23
- 230000006870 function Effects 0.000 description 27
- 238000010586 diagram Methods 0.000 description 11
- 238000001514 detection method Methods 0.000 description 10
- 230000002452 interceptive effect Effects 0.000 description 10
- 239000000284 extract Substances 0.000 description 9
- 238000011161 development Methods 0.000 description 7
- 230000002159 abnormal effect Effects 0.000 description 6
- 238000012360 testing method Methods 0.000 description 6
- 230000005856 abnormality Effects 0.000 description 5
- 239000012634 fragment Substances 0.000 description 4
- 238000007726 management method Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000013508 migration Methods 0.000 description 3
- 230000005012 migration Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000001105 regulatory effect Effects 0.000 description 2
- 230000008439 repair process Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000001276 controlling effect Effects 0.000 description 1
- 238000007599 discharging Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/572—Secure firmware programming, e.g. of basic input output system [BIOS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Stored Programmes (AREA)
Abstract
本申请实施例公开了一种覆盖安装校验方法、装置和计算机可读存储介质;通过从服务器获取应用程序对应的目标版本的安装数据包以及校验组件数据;根据安装数据包对应用程序进行目标版本的覆盖安装处理,并根据校验组件数据生成应用程序对应的校验组件;基于校验组件在预设事件源集合中筛选出匹配的目标事件源;对目标事件源进行至少一种类型的校验处理,得到校验结果;基于校验结果对应用程序的覆盖安装进行校验。以此,通过在对应用程序进行目标版本的覆盖安装处理时生成校验组件,并基于校验组件匹配出多个目标事件源,从而在对应用程序进行覆盖安装时进行多种类型的校验,提高了应用程序覆盖安装过程中的安全性,进而提升了覆盖安装的效率。
Description
技术领域
本申请涉及互联网技术领域,具体涉及一种覆盖安装校验方法、装置和计算机可读存储介质。
背景技术
近年来,随着互联网技术的快速发展,应用程序的应用越来越广泛。为了满足技术更新与产品需求变更的需要,开发人员需要经常对程序进行版本升级。在将应用程序由旧版本升级到新版本的覆盖安装过程中,为了保证新版本的应用程序的运行正常,需要在覆盖安装过程中进行校验,现有的覆盖安装校验方法大多采用比较旧版本和新版本的应用程序的数据库信息,根据比较结果来确定新版本的应用程序中的相关功能是否正常,以确保应用程序是否成功完成覆盖安装。
在对现有技术的研究和实践过程中发现,现有的采用对比数据库信息来实现应用程序的版本升级的覆盖安装校验方法,无法校验应用程序在覆盖安装过程中的安全性,使得应用程序覆盖安装过程中安全性较低,进而导致覆盖安装的效率较低。
发明内容
本申请实施例提供一种覆盖安装校验方法、装置和计算机可读存储介质,可以提高应用程序覆盖安装过程中的安全性,进而提升覆盖安装的效率。
本申请实施例提供一种覆盖安装校验方法,包括:
从服务器获取应用程序对应的目标版本的安装数据包以及校验组件数据;
根据所述安装数据包对所述应用程序进行目标版本的覆盖安装处理,并根据所述校验组件数据生成所述应用程序对应的校验组件;
基于所述校验组件在预设事件源集合中筛选出匹配的目标事件源;
对所述目标事件源进行至少一种类型的校验处理,得到校验结果;
基于所述校验结果对所述应用程序的覆盖安装进行校验。
相应的,本申请实施例提供一种覆盖安装校验装置,适用于终端,包括:
获取单元,用于从服务器获取应用程序对应的目标版本的安装数据包以及校验组件数据;
安装单元,用于根据所述安装数据包对所述应用程序进行目标版本的覆盖安装处理,并根据所述校验组件数据生成所述应用程序对应的校验组件;
筛选单元,用于基于所述校验组件在预设事件源集合中筛选出匹配的目标事件源;
执行单元,用于对所述目标事件源进行至少一种类型的校验处理,得到校验结果;
校验单元,用于基于所述校验结果对所述应用程序的覆盖安装进行校验。
在一实施例中,所述执行单元,包括:
类型参数获取子单元,用于从服务器中获取所述应用程序对应的工程变量信息,并在所述工程变量信息中提取出校验的类型参数;
校验类型识别子单元,用于根据所述类型参数,在预设校验类型集合中识别出与所述目标事件源匹配的至少一种校验类型;
执行子单元,用于基于所述校验类型对所述目标事件源进行校验处理,得到每一校验类型对应的校验结果。
在一实施例中,所述执行子单元,包括:
数据安全校验模块,用于在所述目标事件源对应的校验类型为数据安全校验类型时,对所述目标事件源进行数据安全校验,得到数据安全校验结果;
事件触发逻辑校验模块,用于在所述目标事件源对应的校验类型为事件触发逻辑校验类型时,对所述目标事件源进行事件触发逻辑校验,得到事件触发逻辑校验结果;
件开发工具包更新校验模块,用于在所述目标事件源对应的校验类型为软件开发工具包更新校验类型时,对所述目标事件源进行软件开发工具包更新校验,得到软件包更新校验结果;
校验结果确定模块,用于基于所述数据安全校验结果、事件触发逻辑校验结果以及软件包更新校验结果,确定校验结果。
在一实施例中,所述数据安全校验模块,包括:
接口数据属性获取子模块,用于获取所述目标事件源对应接口的接口数据属性;
接口输入参数确定子模块,用于根据所述接口数据属性以及预设数据安全校验类型确定接口输入参数;
数据安全校验结果确定子模块,用于基于所述接口输入参数调用所述目标事件源对应的接口,并基于调用结果确定数据安全校验结果。
在一实施例中,所述事件触发逻辑校验模块,包括:
交互指令集合获取子模块,用于获取交互指令集合,所述交互指令集合中包括至少一个交互指令,以及所述交互指令对应的期望执行结果;
执行子模块,用于基于所述交互指令执行所述目标事件源,并记录执行后的目标事件源对应的调用堆栈;
比对子模块,用于将所述调用堆栈和期望执行结果进行比对,得到事件触发逻辑校验结果。
在一实施例中,所述安装单元,包括:
词性分析子单元,用于提取所述校验组件数据中的字符数据,并将所述字符数据进行词性分析,得到所述字符数据对应的标记数据;
语法分析子单元,用于对所述标记数据进行语法分析,并基于语法分析结果构建代码结构信息;
校验组件构建子单元,用于根据所述代码结构信息,构建所述应用程序对应的校验组件。
在一实施例中,所述获取单元,包括:
数据获取子单元,用于当接收到应用程序针对目标版本的覆盖安装请求时,获取校验组件数据,并从服务器获取所述应用程序对应的工程变量信息;
数据包搜索子单元,用于在所述工程变量信息中提取出版本字段,并根据所述版本字段在本地存储中搜索所述应用程序对应的目标版本的安装数据包;
安装数据包拉取子单元,用于当未搜索到所述安装数据包时,在所述工程变量信息中提取出所述安装数据包对应的文件路径信息,并基于所述文件路径信息拉取所述安装数据包。
此外,本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有多条指令,所述指令适于处理器进行加载,以执行本申请实施例所提供的任一种覆盖安装校验方法中的步骤。
此外,本申请实施例还提供一种计算机设备,包括处理器和存储器,所述存储器存储有应用程序,所述处理器用于运行所述存储器内的应用程序实现本申请实施例提供的覆盖安装校验方法。
本申请实施例还提供一种计算机程序产品或计算机程序,所述计算机程序产品或计算机程序包括计算机指令,所述计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取所述计算机指令,处理器执行所述计算机指令,使得所述计算机设备执行本申请实施例提供的覆盖安装校验方法中的步骤。
本申请实施例通过从服务器获取应用程序对应的目标版本的安装数据包以及校验组件数据;根据安装数据包对应用程序进行目标版本的覆盖安装处理,并根据校验组件数据生成应用程序对应的校验组件;基于校验组件在预设事件源集合中筛选出匹配的目标事件源;对目标事件源进行至少一种类型的校验处理,得到校验结果;基于校验结果对应用程序的覆盖安装进行校验。以此,通过在对应用程序进行目标版本的覆盖安装处理时生成校验组件,并基于校验组件匹配出多个目标事件源,从而对目标事件源执行多种类型的校验处理,实现了在对应用程序进行覆盖安装时进行多种类型的安全性校验,提高了应用程序覆盖安装过程中的安全性,进而提升了覆盖安装的效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种覆盖安装校验方法实施场景示意图;
图2是本申请实施例提供的一种覆盖安装校验方法的流程示意图;
图3是本申请实施例提供的一种覆盖安装校验方法的具体框架示意图;
图4是本申请实施例提供的一种覆盖安装校验方法的整体流程示意图;
图5是本申请实施例提供的一种覆盖安装校验方法的标签分支示意图;
图6是本申请实施例提供的一种覆盖安装校验方法的另一流程示意图;
图7是本申请实施例提供的覆盖安装校验装置的结构示意图;
图8是本申请实施例提供的计算机设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例提供一种覆盖安装校验方法、装置和计算机可读存储介质。其中,该覆盖安装校验装置可以集成在计算机设备中,该计算机设备可以是服务器,也可以是终端等设备。
其中,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式***,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、网络加速服务(Content Delivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。终端可以包括但不限于手机、电脑、智能语音交互设备、智能家电、车载终端、飞行器等。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
请参阅图1,以覆盖安装校验装置集成在计算机设备中为例,图1为本申请实施例所提供的覆盖安装校验方法的实施场景示意图,其中,该计算机设备可以为终端,该计算机设备可以从服务器获取应用程序对应的目标版本的安装数据包以及校验组件数据;根据安装数据包对应用程序进行目标版本的覆盖安装处理,并根据校验组件数据生成应用程序对应的校验组件;基于校验组件在预设事件源集合中筛选出匹配的目标事件源;对目标事件源进行至少一种类型的校验处理,得到校验结果;基于校验结果对应用程序的覆盖安装进行校验。
需要说明的是,图1所示的覆盖安装校验方法的实施环境场景示意图仅仅是一个示例,本申请实施例描述的覆盖安装校验方法的实施环境场景是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定。本领域普通技术人员可知,随着覆盖安装的演变和新业务场景的出现,本申请提供的技术方案对于类似的技术问题,同样适用。
本申请实施例提供的方案具体通过如下实施例进行说明。需要说明的是,以下实施例的描述顺序不作为对实施例优选顺序的限定。
本实施例将从覆盖安装校验装置的角度进行描述,该覆盖安装校验装置具体可以集成在计算机设备中,该计算机设备可以是终端,本申请在此不作限制。
请参阅图2,图2是本申请实施例提供的覆盖安装校验方法的流程示意图。该覆盖安装校验方法包括:
在步骤101中,从服务器获取应用程序对应的目标版本的安装数据包以及校验组件数据。
其中,该应用程序可以为待进行版本升级的应用程序,该目标版本可以为应用程序欲升级的版本,该安装数据包可以为应用程序对应的目标版本的二进制包,该校验组件数据可以为包括预先编写的用于创建校验组件的源代码的数据,可以根据该校验组件数据生成一个源代码文件(.cpp文件,用C++语言编写的源代码文件),该.cpp文件可以为包括生成校验组件的源代码的配置文件,通过该源代码文件创建校验组件、拉取安装数据包并将校验组件***到安装数据包中,该校验组件数据该校验组件可以为内置在安装数据包中、用于在应用程序对应的目标版本的安装数据包的覆盖安装过程中进行安全性校验的插件。
其中,覆盖安装是指在原有的基础上重新安装,覆盖安装会修复软件的错误等问题。对于新安装的用户而言,数据的存储方式不会有旧数据迁移的影响,因为新安装的应用程序,在之前就没有旧数据,而覆盖安装不同,在旧版本升级到新版本后,旧数据需要有迁移的操作,因此在覆盖安装过程中的安全性需要更多机制来维护,例如,请参考图3,图3是本申请实施例提供的一种覆盖安装校验方法的具体框架示意图,在将旧版本升级到新版本的覆盖安装过程中,可以采用钩子文件(gitHook)以及校验模块(即校验组件)来实现旧数据的迁移以及事件触发、接口兼容等安全性的校验,在校验通过后再将对应的二进制包进行出包,以供用户下载使用。
其中,从服务器获取应用程序对应的目标版本的安装数据包以及校验组件数据的方式可以有多种,例如,可以当接收到应用程序针对目标版本的覆盖安装请求时,获取校验组件数据,并从服务器获取该应用程序对应的工程变量信息,在该工程变量信息中提取出版本字段,并根据该版本字段在本地存储中搜索该应用程序对应的目标版本的安装数据包,当未搜索到该安装数据包时,在该工程变量信息中提取出该安装数据包对应的文件路径信息,并基于该文件路径信息拉取该安装数据包。
其中,该覆盖安装请求可以为对应用程序进行覆盖安装为目标版本的请求,该工程变量信息可以为应用程序对应的开发项目工程的变量信息,该工程变量信息可以通过网络协议从服务器中获取,例如,可以采用超文本传输协议(Hyper Text TransferProtocol,HTTP)从服务器中获取,可选的,请参考图4,图4是本申请实施例提供的一种覆盖安装校验方法的整体流程示意图,可以在应用程序对应的开发项目工程中创建一个钩子脚本文件(hook.yml文件),该钩子脚本文件可以为一个预先设计的一个脚本文件,用于检测针对应用程序对应的项目工程触发的分支推送操作以及配置项目工程中的工程变量信息等。该版本字段可以为包括应用程序的安装数据包的版本信息的字段,该文件路径信息可以为包括安装数据包对应的存储路径的信息。
在一实施例中,该工程变量信息可以表示为:
以此,可以在接收到应用程序针对目标版本的覆盖安装请求时,获取校验组件数据,并从服务器获取该应用程序对应的工程变量信息,在该工程变量信息中提取出版本字段(version),并根据该版本字段在本地存储中搜索该应用程序对应的目标版本的安装数据包,当未搜索到该安装数据包时,也即本地未下载目标版本的安装数据包时,可以在该工程变量信息中的配置文件路径(ep_entry_file_path)字段中获取该安装数据包对应的文件路径信息,并基于该文件路径信息拉取该安装数据包。其中,该配置文件路径字段中可以存储安装数据包,也可以在安装数据包较大时,在配置文件路径字段中配置安装数据包的下载地址。
其中,基于该文件路径信息拉取该安装数据包的方式可以有多种,例如,可以根据文件路径信息找到目标版本的安装数据包,从而可以通过线程工具(pthread)开启下载器进行安装数据包的下载,在下载完成后可以先创建目标版本的安装数据包对应的版本文件夹,最后将安装数据包存储在该版本文件夹中,从而可以在该版本文件夹中获取目标版本的安装数据包进行覆盖安装处理。
在一实施例中,基于本申请实施例提供的一种适用于终端的覆盖安装校验方法,可以相应的提供一种适用于服务器的覆盖安装校验方法,请继续参考图4,该方法可以包括:获取目标程序代码;根据该目标程序代码构建应用程序对应的目标版本的安装数据包;基于该目标程序代码对应的提交节点,生成目标版本的标签分支,并基于该标签分支存储该安装数据包;接收终端发送的数据包获取请求,基于该数据包获取请求向该终端发送该安装数据包。
其中,该目标程序代码可以为应用程序对应的目标版本的程序代码,该提交节点可以为应用程序对应的项目工程的分布流程中触发分支推送操作的节点,在项目开发时,开发团队一般会使用分布式版本控制***(git)来对应用程序的代码进行版本管理,该分支推送操作(git push)可以为用于从将本地的分支版本上传到远程并合并的操作,也即将当前提交到git本地仓库的代码推送到远程主机的某个远程分支上的操作。其中,钩子文件(gitHook)可以在预先设定的重要动作发生时触发自定义脚本,例如,可以在开发人员触发git push命令时,可以触发执行钩子脚本文件的脚本检测。该标签分支可以为应用程序对应的项目工程的git本地仓库中为应用程序的某个版本的代码打上一个标签(tag)、标记为目标版本的分支(branch),可以指在应用程序针对目标版本的版本发布时最近的那个提交结点,该数据包获取请求可以为终端发送的用于获取安装数据包的请求。
其中,获取目标程序代码,根据该目标程序代码构建应用程序对应的目标版本的安装数据包,基于该目标程序代码对应的提交节点,生成目标版本的标签分支,并基于该标签分支存储该安装数据包的方式可以有多种,例如,可以在开发人员触发git push命令提交目标版本的应用程序的程序代码时,可以获取到目标程序代码。在当前执行的分支推送操作需要脚本产生二进制包(即安装数据包)时,可以根据该目标程序代码构建应用程序对应的目标版本的安装数据包,并自动生成一个标签分支,并将安装数据包存入在配置文件路径中,在安装数据包较大时,可以在配置文件路径字段中配置安装数据包的下载地址。可选的,请参考图5,图5是本申请实施例提供的一种覆盖安装校验方法的标签分支示意图,可以在程序发版时的最近提交结点生成标签分支存储安装数据包,例如,假设在产生应用程序的版本1.0时,可以在最近提交结点标签1.0生成标签分支存储安装数据包,在产生应用程序的版本1.1时,可以在最近提交结点标签1.1生成标签分支存储安装数据包,在产生应用程序的版本1.2时,可以在最近提交结点标签1.2生成标签分支存储安装数据包。其中,在生成标签分支时,可以通过配置基线类型以及基线版本来自定义某一版本的基线版本号。以此,可以在开发、测试覆盖安装时候根据配置的版本号线拉取对应版本的安装数据包并进行安装,在安装成功后再执行编译运行。
其中,基于该数据包获取请求向该终端发送该安装数据包的方式可以有多种,例如,可以将应用程序对应的项目工程中内置的钩子脚本文件(hook.yml文件)中配置的工程变量信息发送到终端中,以使得终端基于该工程变量信息中的配置文件路径提取出安装数据包的存储路径,从而可以终端可以根据安装数据包的存储路径获取到目标版本的安装数据包。
在步骤102中,根据安装数据包对应用程序进行目标版本的覆盖安装处理,并根据校验组件数据生成应用程序对应的校验组件。
其中,根据安装数据包对应用程序进行目标版本的覆盖安装处理,并根据校验组件数据生成应用程序对应的校验组件的方式可以有多种,例如,可以采用基于底层虚拟机(Low Level Virtual Machine,简称LLVM)开发的轻量编译器(clang)来编写校验组件对应的插件源代码,即校验组件数据中cpp文件,从而可以基于cpp文件在安装数据包中创建并***对应的插件,即校验组件,该cpp文件的文件内容可以为add_llvm_loadable_module,在对cpp文件进行编译过程中,可以获取目标版本的安装数据包,并将校验组件***到安装数据包中,并对安装数据包下载到终端中进行安装。
其中,根据该校验组件数据生成该应用程序对应的校验组件的方式可以有多种,例如,可以提取该校验组件数据中的字符数据,并将该字符数据进行词性分析,得到该字符数据对应的标记数据,对该标记数据进行语法分析,并基于语法分析结果构建代码结构信息,根据该代码结构信息,构建该应用程序对应的校验组件。
其中,该字符数据可以为校验组件数据中的文本,例如,字母、单词、中文、数字等字符,该标记数据可以为对字符数据进行词性分析后得到的数据,该代码结构信息可以为表征标记数据中的语法结构的信息,例如,该代码结构信息可以为语法树结构的信息,例如抽象语法树(Abstract Syntax Tree),以树状的形式表现校验组件数据中编程语言的语法结构。
具体的,可以对校验组件数据中的字符数据进行解析,进而将校验组件数据中的字符数据进行词性分析,也叫扫描(Scanner),也即将接口定义文件中所有的单词或字符按照预定的规则转换成一个个的标记(Token)。同时,它会移除空白符、注释等,最终将整个校验组件数据中的字符数据分割进一个Token列表中,从而生成对应的标记数据,接着可以对该标记数据进行语法分析,也即将词法分析得到的Token列表转换成树形的形式,同时,可以验证语法,以及删除一些没必要的Token,例如不完整的括号等,以此,可以根据语法分析结果来得到校验组件数据对应的代码结构信息,在基于代码结构信息构建该应用程序对应的校验组件。
在步骤103中,基于校验组件在预设事件源集合中筛选出匹配的目标事件源。
其中,该预设事件源集合可以为预先设置的事件源集合,该事件源集合为至少一个事件源构成的整体,该事件源可以为发生事件的对象,可以指某一具体的组件,比如,用户点击某按钮组件(Button),则该按钮组件即为事件源。可选的,该预设事件源集合中的事件源可以为目标版本的安装数据包中的程序片段,例如,可以为函数,该目标事件源可以为根据校验组件在预设事件源集合中筛选出的事件源。在终端设备下载应用程序完成之后,可以在校验组件数据的cpp文件中执行回调,继续进行源码的编译,进而执行校验组件,校验组件中内置的检测脚本可以用于输入事件到应用程序,并将应用程序执行的回调消息存储在终端中,以基于回调消息进行覆盖安装的安全性校验。其中,校验组件中可以包括协议类型、可变数组和匿名函数等内容,在执行校验组件中的检测脚本后,可以根据校验组件中的协议类型去匹配对应的目标事件源,执行完目标事件源的算术或逻辑运算后,可以将执行结果放在可变数组中,再由匿名函数将可变数据中的信息回调给校验模块。
其中,基于校验组件在预设事件源集合中筛选出匹配的目标事件源的方式可以有多种,例如,可以根据校验组件中的协议类型,在预设事件源集合中筛选出匹配的目标事件源。其中,该协议类型可以为预先设定的用于在预设事件源集合中筛选出匹配的目标事件源的协议规则,协议类型中可以包括多种预先设计的协议方法,执行校验组件中的脚本时,可以通过实现协议方法在应用程序对应的代码片段中确定需要进行校验的代码片段,即在预设事件源集合中筛选出匹配的目标事件源。
在步骤104中,对目标事件源进行至少一种类型的校验处理,得到校验结果。
其中,该校验结果可以为对目标事件源进行至少一个类型的校验处理之后得到的结果,比如,可以为基于不同校验类型执行目标事件源得到的执行结果,例如,在校验目标事件源对应的函数是否具有数据安全性时,可以通过调节输入参数输入到目标执行目标事件源,根据输入参数得到对应的执行结果,即是否处于规定的取值范围内的信息,从而可以根据执行结果是否正确来得到此校验类型的校验结果。
其中,对该目标事件源进行至少一种类型的校验处理的方式可以有多种,例如,可以从服务器中获取该应用程序对应的工程变量信息,并在该工程变量信息中提取出校验的类型参数,根据该类型参数,在预设校验类型集合中识别出与该目标事件源匹配的至少一种校验类型,基于该校验类型对该目标事件源进行校验处理,得到每一校验类型对应的校验结果。
其中,该类型参数可以为确定目标事件源对应的校验类型的参数,该预设校验类型集合可以为预先设定的至少一个校验类型构成的整体,该校验类型可以为对目标版本的应用程序进行覆盖安装过程中进行安全性校验的类型,例如,可以包括数据安全性校验、事件触发逻辑校验以及软件开发工具包更新校验等校验类型,其中,数据安全性校验可以用于校验目标版本的应用程序在运行过程中对数据的识约束识别是否正常,例如,目标版本的应用程序对数据的判空逻辑处理、数据兼容性处理以及取值范围的处理是否正确无误,以此确保目标版本的应用程序在数据处理过程中的安全性。该事件触发逻辑校验可以用于校验目标版本的应用程序在运行过程中对事件触发的逻辑是否正常,该软件开发工具包更新校验可以用于校验目标版本的应用程序在运行过程中更新的软件开发工具包(SDK)的接口调用等功能是否正常。
其中,在该工程变量信息中提取出校验的类型参数,根据该类型参数,在预设校验类型集合中识别出与该目标事件源匹配的至少一种校验类型的方式可以有多种,例如,可以通过服务器从应用程序对应的项目工程中创建的钩子脚本文件(hook.yml文件)获取工程变量信息,从而可以在工程变量信息中的规则字段(RULE)中提取出校验的类型参数,该类型参数可以为预先设计的协议规则,用于确定目标事件源对应的校验类型,从而,可以根据校验参数在预设校验类型集合中识别出与每一目标事件源匹配的至少一种校验类型。
在根据该类型参数,在预设校验类型集合中识别出与该目标事件源匹配的至少一种校验类型之后,便可以基于该校验类型对该目标事件源进行校验处理,得到每一校验类型对应的校验结果。其中,基于该校验类型对该目标事件源进行校验处理的方式可以有多种,例如,可以在该目标事件源对应的校验类型为数据安全校验类型时,对该目标事件源进行数据安全校验,得到数据安全校验结果;在该目标事件源对应的校验类型为事件触发逻辑校验类型时,对该目标事件源进行事件触发逻辑校验,得到事件触发逻辑校验结果;在该目标事件源对应的校验类型为软件开发工具包更新校验类型时,对该目标事件源进行软件开发工具包更新校验,得到软件包更新校验结果;基于该数据安全校验结果、事件触发逻辑校验结果以及软件包更新校验结果,确定校验结果。
其中,该数据安全校验结果可以为对该目标事件源进行数据安全校验得到的结果,该事件触发逻辑校验结果可以为对该目标事件源进行事件触发逻辑校验得到的结果,该软件包更新校验结果可以为对该目标事件源进行软件开发工具包更新校验得到的结果。
其中,对该目标事件源进行数据安全校验的方式可以有多种,例如,可以获取该目标事件源对应接口的接口数据属性,根据该接口数据属性以及预设数据安全校验类型确定接口输入参数,基于该接口输入参数调用该目标事件源对应的接口,并基于调用结果确定数据安全校验结果。
其中,该接口数据属性可以为目标事件源对应接口包含的数据的属性,例如,可以包括接口数据的取值范围、数据类型要求、是否为空值等属性信息,数据类型可以包括字符串、整型、浮点类型、指针、函数等类型。该预设数据安全校验类型可以为预先设定的数据安全校验类型,例如,可以包括判空逻辑校验、数据兼容校验和取值范围校验等数据安全校验类型,该接口输入参数可以为目标事件源对应接口的输入参数,用于对目标事件源对应接口的数据安全性进行校验。
其中,根据该接口数据属性以及预设数据安全校验类型确定接口输入参数的方式可以有多种,比如,在接口数据属性中获取接口数据的取值范围,从而可以根据预设数据安全校验类型中的取值范围校验来确定接口输入参数,例如,假设接口数据的取值范围为0到10,从而可以根据预设数据安全校验类型中的取值范围校验来获取不在该取值范围内的数值为接口输入参数,例如,可以将-1、12等不在取值范围内的数值作为接口输入参数,以基于该接口输入参数来检测目标事件源对应接口的数据取值范围校验是否正常,还可以将接口输入参数确定为空值,以此来调用目标事件源对应接口,以对目标事件源对应接口的判空逻辑功能进行校验,还可以从接口数据属性中获取接口数据的数据类型,并根据预设数据安全校验类型中的数据兼容性校验,将接口输入参数确定为不同数据类型的数值,从而基于不同数据类型的接口输入参数来调用目标事件源对应接口,从而可以对目标事件源对应接口的数据兼容性功能进行校验等,以此,通过调节接口输入参数对目标事件源对应接口中包含的数据进行调用来检测目标事件源的判空逻辑、数据兼容和取值范围等数据安全性校验,以保证应用程序在运行过程中的数据安全性。
其中,对该目标事件源进行事件触发逻辑校验,得到事件触发逻辑校验结果的方式可以有多种,例如,可以获取交互指令集合,基于该交互指令执行该目标事件源,并记录执行后的目标事件源对应的调用堆栈,将该调用堆栈和期望执行结果进行比对,得到事件触发逻辑校验结果。
其中,该交互指令集合中可以包括至少一个交互指令,以及该交互指令对应的期望执行结果,该交互指令可以为触发事件的指令,例如,可以包括触发滑动、点击、缩放等操作的指令,该期望执行结果可以为执行该交互指令后期望得到的执行结果,即在执行交互指令后得到的结果为该期望执行结果时,可以表明目标事件源对应的事件触发逻辑功能正常,若执行交互指令后得到的结果不为该期望执行结果时,可以表明目标事件源对应的事件触发逻辑功能不正常,例如,该期望执行结果可以为包括目标事件源基于交互指令期望记录得到的调用堆栈的信息。该调用堆栈(call stack)可以为程序运行时一个记录函数调用路径和参数的空间,可以根据调用堆栈中记录的函数调用过程来校验目标版本的应用程序在运行时进行事件触发逻辑的功能是否正常。
其中,获取交互指令集合,基于该交互指令执行该目标事件源,并记录执行后的目标事件源对应的调用堆栈的方式可以有多种,例如,可以通过工程变量信息中规则字段中的相关的指令来执行预设的用于进行事件触发逻辑校验的自动化测试脚本,以触发包括滑动、点击、缩放等操作指令,当指令达到检测片段时,可以记录生成事件触发中目标事件源对应的调用堆栈。
其中,基于该数据安全校验结果、事件触发逻辑校验结果以及软件包更新校验结果,确定校验结果的方式可以有多种,例如,可以直接将该数据安全校验结果、事件触发逻辑校验结果以及软件包更新校验结果确定为校验结果。
其中,对该目标事件源进行软件开发工具包更新校验的方式可以有多种,例如,可以对新增的SDK接口的调用进行自动化脚本测试,对于旧的SDK接口的修改可以进行常规调用,从而可以根据调用结果得到软件包更新校验结果。
可选的,在正常运行目标版本的应用程序时,在启动程序后校验组件可以运行当前的检测脚本,当检测到升级后目标版本的应用程序中存在调用敏感应用程序接口或传输敏感数据时,可以通过hook.yml文件中的提取参数字段(atomCode)中对应的输出参数(output)来获取对应的接口或者数据,以进行修改,对于目标版本的应用程序中某些被修改过的接口、空数据和页面显示可以进行针对性的测试,以验证修改是否存在问题。
在步骤105中,基于校验结果对应用程序的覆盖安装进行校验。
其中,基于校验结果对应用程序的覆盖安装进行校验的方式可以有多种,例如,可以在校验结果中存在异常,例如,在数据安全校验结果、事件触发逻辑校验结果以及软件包更新校验结果中一项或者多项存在异常结果时,可以表明对应用程序的覆盖安装过程中目标版本的应用程序存在异常,需要对这些异常进行修复,以保障目标版本的应用程序在运行时的安全性,在数据安全校验结果、事件触发逻辑校验结果以及软件包更新校验结果中都不存在异常时,可以表明对应用程序的覆盖安装过程中目标版本的应用程序的运行正常,即针对目标版本的应用程序的覆盖安装正常,可以进行后续的发布。以此,通过利用gitHook执行自动化检测脚本、出包、下载、编译到最后的覆盖安装过程,节省了覆盖安装过程中的人工操作成本,同时,通过校验组件对目标版本的应用程序中数据类型、敏感接口及数据、数据兼容性和SDK接口的可扩展性进行了校验,实现了在对应用程序进行覆盖安装时进行多种类型的安全性校验,提高了应用程序覆盖安装过程中的安全性。
由以上可知,本申请实施例通过从服务器获取应用程序对应的目标版本的安装数据包以及校验组件数据;根据安装数据包对应用程序进行目标版本的覆盖安装处理,并根据校验组件数据生成应用程序对应的校验组件;基于校验组件在预设事件源集合中筛选出匹配的目标事件源;对目标事件源进行至少一种类型的校验处理,得到校验结果;基于校验结果对应用程序的覆盖安装进行校验。以此,通过在对应用程序进行目标版本的覆盖安装处理时生成校验组件,并基于校验组件匹配出多个目标事件源,从而对目标事件源执行多种类型的校验处理,实现了在对应用程序进行覆盖安装时进行多种类型的安全性校验,提高了应用程序覆盖安装过程中的安全性,进而提升了覆盖安装的效率。
根据上面实施例所描述的方法,以下将举例作进一步详细说明。
在本实施例中,将以该覆盖安装校验装置具体集成在计算机设备为例进行说明。其中,该覆盖安装校验方法以终端为执行主体为例进行具体的描述。
为了更好的描述本申请实施例,请参阅图6,图6为本申请实施例提供的覆盖安装校验方法的另一流程示意图。具体流程如下:
在步骤201中,当接收到应用程序针对目标版本的覆盖安装请求时,终端获取校验组件数据,并从服务器获取应用程序对应的工程变量信息,在工程变量信息中提取出版本字段,并根据版本字段在本地存储中搜索应用程序对应的目标版本的安装数据包。
其中,终端获取校验组件数据的方式可以有多种,例如,该校验组件数据可以为包括预先编写的用于创建校验组件的源代码的数据,可以根据该校验组件数据生成一个源代码文件(cpp文件,用C++语言编写的源代码文件),该cpp文件可以为包括生成校验组件的源代码的配置文件,通过该源代码文件创建校验组件、拉取安装数据包并将校验组件***到安装数据包中,该校验组件数据该校验组件可以为内置在安装数据包中、用于在应用程序对应的目标版本的安装数据包的覆盖安装过程中进行安全性校验的插件。
在步骤202中,当未搜索到安装数据包时,终端在工程变量信息中提取出安装数据包对应的文件路径信息,并基于文件路径信息拉取安装数据包。
其中,终端基于该文件路径信息拉取该安装数据包的方式可以有多种,例如,可以根据文件路径信息找到目标版本的安装数据包,从而可以通过线程工具pthread开启下载器进行安装数据包的下载,在下载完成后可以先创建目标版本的安装数据包对应的版本文件夹,最后将安装数据包存储在该版本文件夹中,从而可以在该版本文件夹中获取目标版本的安装数据包进行覆盖安装处理。
可选的,在搜索到安装数据包时,终端可以拉取搜索到的安装数据包,直接根据搜索到发安装数据包进行后续的覆盖安装校验操作。
在步骤203中,终端根据安装数据包对应用程序进行目标版本的覆盖安装处理,提取校验组件数据中的字符数据,并将字符数据进行词性分析,得到字符数据对应的标记数据,对标记数据进行语法分析,并基于语法分析结果构建代码结构信息,根据代码结构信息,构建应用程序对应的校验组件。
其中,该代码结构信息可以为语法树,具体的,终端可以对校验组件数据中的字符数据进行解析,进而将校验组件数据中的字符数据进行词性分析,也叫扫描,也即将接口定义文件中所有的单词或字符按照预定的规则转换成一个个的标记。同时,它会移除空白符、注释等,最终将整个校验组件数据中的字符数据分割进一个Token列表中,从而生成对应的标记数据,接着可以对该标记数据进行语法分析,也即将词法分析得到的Token列表转换成树形的形式,同时,可以验证语法,以及删除一些没必要的Token,例如不完整的括号等,以此,终端可以根据语法分析结果来得到校验组件数据对应的代码结构信息,在基于代码结构信息构建该应用程序对应的校验组件。
在步骤204中,终端基于校验组件在预设事件源集合中筛选出匹配的目标事件源,从服务器中获取应用程序对应的工程变量信息,并在工程变量信息中提取出校验的类型参数,根据类型参数,在预设校验类型集合中识别出与目标事件源匹配的至少一种校验类型。
其中,终端基于校验组件在预设事件源集合中筛选出匹配的目标事件源的方式可以有多种,例如,终端可以根据校验组件中的协议类型,在预设事件源集合中筛选出匹配的目标事件源。其中,该协议类型可以为预先设定的用于在预设事件源集合中筛选出匹配的目标事件源的协议规则,协议类型中可以包括多种预先设计的协议方法,执行校验组件中的脚本时,可以通过实现协议方法在应用程序对应的代码片段中确定需要进行校验的代码片段,即在预设事件源集合中筛选出匹配的目标事件源。
在步骤205中,终端在目标事件源对应的校验类型为数据安全校验类型时,获取目标事件源对应接口的接口数据属性,根据接口数据属性以及预设数据安全校验类型确定接口输入参数,基于接口输入参数调用目标事件源对应的接口,并基于调用结果确定数据安全校验结果。
其中,终端根据该接口数据属性以及预设数据安全校验类型确定接口输入参数的方式可以有多种,比如,终端可以在接口数据属性中获取接口数据的取值范围,从而可以根据预设数据安全校验类型中的取值范围校验来确定接口输入参数,例如,假设接口数据的取值范围为0到10,从而可以根据预设数据安全校验类型中的取值范围校验来获取不在该取值范围内的数值为接口输入参数,例如,可以将-1、12等不在取值范围内的数值作为接口输入参数,以基于该接口输入参数来检测目标事件源对应接口的数据取值范围校验是否正常,还可以将接口输入参数确定为空值,以此来调用目标事件源对应接口,以对目标事件源对应接口的判空逻辑功能进行校验,还可以从接口数据属性中获取接口数据的数据类型,并根据预设数据安全校验类型中的数据兼容性校验,将接口输入参数确定为不同数据类型的数值,从而基于不同数据类型的接口输入参数来调用目标事件源对应接口,从而可以对目标事件源对应接口的数据兼容性功能进行校验等,以此,终端可以通过调节接口输入参数对目标事件源对应接口中包含的数据进行调用来检测目标事件源的判空逻辑、数据兼容和取值范围等数据安全性校验,以保证应用程序在运行过程中的数据安全性。
在步骤206中,终端在目标事件源对应的校验类型为事件触发逻辑校验类型时,获取交互指令集合,基于交互指令执行目标事件源,并记录执行后的目标事件源对应的调用堆栈,将调用堆栈和期望执行结果进行比对,得到事件触发逻辑校验结果。
其中,该交互指令集合中可以包括至少一个交互指令,以及该交互指令对应的期望执行结果,该交互指令可以为触发事件的指令,例如,可以包括触发滑动、点击、缩放等操作的指令,该期望执行结果可以为执行该交互指令后期望得到的执行结果,即在执行交互指令后得到的结果为该期望执行结果时,可以表明目标事件源对应的事件触发逻辑功能正常,若执行交互指令后得到的结果不为该期望执行结果时,可以表明目标事件源对应的事件触发逻辑功能不正常,例如,该期望执行结果可以为包括期望调用堆栈,即期望目标事件源基于交互指令记录得到的调用堆栈的信息。该调用堆栈可以为程序运行时一个记录函数调用路径和参数的空间,可以根据调用堆栈中记录的函数调用过程来校验目标版本的应用程序在运行时进行事件触发逻辑的功能是否正常。
其中,终端获取交互指令集合,基于该交互指令执行该目标事件源,并记录执行后的目标事件源对应的调用堆栈的方式可以有多种,例如,终端可以通过工程变量信息中规则字段中的相关的指令来执行预设的用于进行事件触发逻辑校验的自动化测试脚本,以触发包括滑动、点击、缩放等操作指令,当指令达到检测片段时,可以记录生成事件触发中目标事件源对应的调用堆栈。
在记录执行后的目标事件源对应的调用堆栈之后,终端便可以将调用堆栈和期望执行结果进行比对,得到事件触发逻辑校验结果。其中,终端将调用堆栈和期望执行结果进行比对的方式可以有多种,例如,终端可以将调用堆栈和期望执行结果中的期望调用堆栈进行对比,在调用堆栈中记录的调用过程和期望调用堆栈中记录的调用过程相同时,可以表明目标事件源对应的事件触发逻辑功能正常,在调用堆栈中记录的调用过程和期望调用堆栈中记录的调用过程不同时,可以表明目标事件源对应的事件触发逻辑功能不正常。
在步骤207中,终端在目标事件源对应的校验类型为软件开发工具包更新校验类型时,对目标事件源进行软件开发工具包更新校验,得到软件包更新校验结果。
其中,终端对该目标事件源进行软件开发工具包更新校验的方式可以有多种,例如,可以对新增的SDK接口的调用进行自动化脚本测试,对于旧的SDK接口的修改可以进行常规调用,从而可以根据调用结果得到软件包更新校验结果。
可选的,在正常运行目标版本的应用程序时,终端在启动程序后校验组件可以运行当前的检测脚本,当检测到升级后目标版本的应用程序中存在调用敏感应用程序接口或传输敏感数据时,可以通过hook.yml文件中的提取参数字段中对应的输出参数来获取对应的接口或者数据,以进行修改,对于目标版本的应用程序中某些被修改过的接口、空数据和页面显示可以进行针对性的测试,以验证修改是否存在问题。
在步骤208中,终端基于数据安全校验结果、事件触发逻辑校验结果以及软件包更新校验结果,确定校验结果,基于校验结果对应用程序的覆盖安装进行校验。
其中,终端基于校验结果对应用程序的覆盖安装进行校验的方式可以有多种,例如终端可以在校验结果中存在异常时,例如,在数据安全校验结果、事件触发逻辑校验结果以及软件包更新校验结果中一项或者多项存在异常结果时,可以表明对应用程序的覆盖安装过程中目标版本的应用程序存在异常,需要对这些异常进行修复,以保障目标版本的应用程序在运行时的安全性,在数据安全校验结果、事件触发逻辑校验结果以及软件包更新校验结果中都不存在异常时,可以表明对应用程序的覆盖安装过程中目标版本的应用程序的运行正常,即针对目标版本的应用程序的覆盖安装正常,可以进行后续的发布。以此,终端通过gitHook执行自动化检测脚本、出包、下载、编译到最后的覆盖安装过程,节省了覆盖安装过程中的人工操作成本,同时,通过校验组件对目标版本的应用程序中数据类型、敏感接口及数据、数据兼容性和SDK接口的可扩展性进行了校验,实现了在对应用程序进行覆盖安装时进行多种类型的安全性校验,提高了应用程序覆盖安装过程中的安全性。
由以上可知,本申请实施例通过当接收到应用程序针对目标版本的覆盖安装请求时,终端获取校验组件数据,并从服务器获取应用程序对应的工程变量信息,在工程变量信息中提取出版本字段,并根据版本字段在本地存储中搜索应用程序对应的目标版本的安装数据包;当未搜索到安装数据包时,终端在工程变量信息中提取出安装数据包对应的文件路径信息,并基于文件路径信息拉取安装数据包;终端根据安装数据包对应用程序进行目标版本的覆盖安装处理,提取校验组件数据中的字符数据,并将字符数据进行词性分析,得到字符数据对应的标记数据,对标记数据进行语法分析,并基于语法分析结果构建代码结构信息,根据代码结构信息,构建应用程序对应的校验组件;终端基于校验组件在预设事件源集合中筛选出匹配的目标事件源,从服务器中获取应用程序对应的工程变量信息,并在工程变量信息中提取出校验的类型参数,根据类型参数,在预设校验类型集合中识别出与目标事件源匹配的至少一种校验类型;终端在目标事件源对应的校验类型为数据安全校验类型时,获取目标事件源对应接口的接口数据属性,根据接口数据属性以及预设数据安全校验类型确定接口输入参数,基于接口输入参数调用目标事件源对应的接口,并基于调用结果确定数据安全校验结果;终端在目标事件源对应的校验类型为事件触发逻辑校验类型时,获取交互指令集合,基于交互指令执行目标事件源,并记录执行后的目标事件源对应的调用堆栈,将调用堆栈和期望执行结果进行比对,得到事件触发逻辑校验结果;终端在目标事件源对应的校验类型为软件开发工具包更新校验类型时,对目标事件源进行软件开发工具包更新校验,得到软件包更新校验结果;终端基于数据安全校验结果、事件触发逻辑校验结果以及软件包更新校验结果,确定校验结果,基于校验结果对应用程序的覆盖安装进行校验。以此,通过在对应用程序进行目标版本的覆盖安装处理时生成校验组件,并基于校验组件匹配出多个目标事件源,从而根据校验参数确定每一目标事件源对应的校验类型,进而根据数据安全校验、事件触发逻辑校验以及软件包更新校验等校验类型对目标事件源执行多种类型的校验处理,实现了在对应用程序进行覆盖安装时进行多种类型的安全性校验,提高了应用程序覆盖安装过程中的安全性,进而提升了覆盖安装的效率。
为了更好地实施以上方法,本申请实施例还提供一种覆盖安装校验装置,该覆盖安装校验装置可以集成在计算机设备中,该计算机设备可以为终端。
例如,如图7所示,为本申请实施例提供的覆盖安装校验装置的结构示意图,该覆盖安装校验装置可以包括获取单元301、安装单元302、筛选单元303、执行单元304和校验单元305,如下:
获取单元301,用于从服务器获取应用程序对应的目标版本的安装数据包以及校验组件数据;
安装单元302,用于根据该安装数据包对该应用程序进行目标版本的覆盖安装处理,并根据该校验组件数据生成该应用程序对应的校验组件;
筛选单元303,用于基于该校验组件在预设事件源集合中筛选出匹配的目标事件源;
执行单元304,用于对该目标事件源进行至少一种类型的校验处理,得到校验结果;
校验单元305,用于基于该校验结果对该应用程序的覆盖安装进行校验。
在一实施例中,该执行单元304,包括:
类型参数获取子单元,用于从服务器中获取该应用程序对应的工程变量信息,并在该工程变量信息中提取出校验的类型参数;
校验类型识别子单元,用于根据该类型参数,在预设校验类型集合中识别出与该目标事件源匹配的至少一种校验类型;
执行子单元,用于基于该校验类型对该目标事件源进行校验处理,得到每一校验类型对应的校验结果。
在一实施例中,该执行子单元,包括:
数据安全校验模块,用于在该目标事件源对应的校验类型为数据安全校验类型时,对该目标事件源进行数据安全校验,得到数据安全校验结果;
事件触发逻辑校验模块,用于在该目标事件源对应的校验类型为事件触发逻辑校验类型时,对该目标事件源进行事件触发逻辑校验,得到事件触发逻辑校验结果;
件开发工具包更新校验模块,用于在该目标事件源对应的校验类型为软件开发工具包更新校验类型时,对该目标事件源进行软件开发工具包更新校验,得到软件包更新校验结果;
校验结果确定模块,用于基于该数据安全校验结果、事件触发逻辑校验结果以及软件包更新校验结果,确定校验结果。
在一实施例中,该数据安全校验模块,包括:
接口数据属性获取子模块,用于获取该目标事件源对应接口的接口数据属性;
接口输入参数确定子模块,用于根据该接口数据属性以及预设数据安全校验类型确定接口输入参数;
数据安全校验结果确定子模块,用于基于该接口输入参数调用该目标事件源对应的接口,并基于调用结果确定数据安全校验结果。
在一实施例中,该事件触发逻辑校验模块,包括:
交互指令集合获取子模块,用于获取交互指令集合,该交互指令集合中包括至少一个交互指令,以及该交互指令对应的期望执行结果;
执行子模块,用于基于该交互指令执行该目标事件源,并记录执行后的目标事件源对应的调用堆栈;
比对子模块,用于将该调用堆栈和期望执行结果进行比对,得到事件触发逻辑校验结果。
在一实施例中,该安装单元302,包括:
词性分析子单元,用于提取该校验组件数据中的字符数据,并将该字符数据进行词性分析,得到该字符数据对应的标记数据;
语法分析子单元,用于对该标记数据进行语法分析,并基于语法分析结果构建代码结构信息;
校验组件构建子单元,用于根据该代码结构信息,构建该应用程序对应的校验组件。
在一实施例中,该获取单元301,包括:
数据获取子单元,用于当接收到应用程序针对目标版本的覆盖安装请求时,获取校验组件数据,并从服务器获取该应用程序对应的工程变量信息;
数据包搜索子单元,用于在该工程变量信息中提取出版本字段,并根据该版本字段在本地存储中搜索该应用程序对应的目标版本的安装数据包;
安装数据包拉取子单元,用于当未搜索到该安装数据包时,在该工程变量信息中提取出该安装数据包对应的文件路径信息,并基于该文件路径信息拉取该安装数据包。
具体实施时,以上各个单元可以作为独立的实体来实现,也可以进行任意组合,作为同一或若干个实体来实现,以上各个单元的具体实施可参见前面的方法实施例,在此不再赘述。
由以上可知,本申请实施例通过获取单元301从服务器获取应用程序对应的目标版本的安装数据包以及校验组件数据;安装单元302根据安装数据包对应用程序进行目标版本的覆盖安装处理,并根据校验组件数据生成应用程序对应的校验组件;筛选单元303基于校验组件在预设事件源集合中筛选出匹配的目标事件源;执行单元304对目标事件源进行至少一种类型的校验处理,得到校验结果;校验单元305基于校验结果对应用程序的覆盖安装进行校验。以此,通过在对应用程序进行目标版本的覆盖安装处理时生成校验组件,并基于校验组件匹配出多个目标事件源,从而对目标事件源执行多种类型的校验处理,实现了在对应用程序进行覆盖安装时进行多种类型的安全性校验,提高了应用程序覆盖安装过程中的安全性,进而提升了覆盖安装的效率。
本申请实施例还提供一种计算机设备,如图8所示,其示出了本申请实施例所涉及的计算机设备的结构示意图,该计算机设备可以是终端,具体来讲:
该计算机设备可以包括一个或者一个以上处理核心的处理器401、一个或一个以上计算机可读存储介质的存储器402、电源403和输入单元404等部件。本领域技术人员可以理解,图8中示出的计算机设备结构并不构成对计算机设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
处理器401是该计算机设备的控制中心,利用各种接口和线路连接整个计算机设备的各个部分,通过运行或执行存储在存储器402内的软件程序和/或模块,以及调用存储在存储器402内的数据,执行计算机设备的各种功能和处理数据。可选的,处理器401可包括一个或多个处理核心;优选的,处理器401可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作***、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器401中。
存储器402可用于存储软件程序以及模块,处理器401通过运行存储在存储器402的软件程序以及模块,从而执行各种功能应用以及覆盖安装。存储器402可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据计算机设备的使用所创建的数据等。此外,存储器402可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器402还可以包括存储器控制器,以提供处理器401对存储器402的访问。
计算机设备还包括给各个部件供电的电源403,优选的,电源403可以通过电源管理***与处理器401逻辑相连,从而通过电源管理***实现管理充电、放电、以及功耗管理等功能。电源403还可以包括一个或一个以上的直流或交流电源、再充电***、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
该计算机设备还可包括输入单元404,该输入单元404可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。
尽管未示出,计算机设备还可以包括显示单元等,在此不再赘述。具体在本实施例中,计算机设备中的处理器401会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器402中,并由处理器401来运行存储在存储器402中的应用程序,从而实现各种功能,如下:
从服务器获取应用程序对应的目标版本的安装数据包以及校验组件数据;根据安装数据包对应用程序进行目标版本的覆盖安装处理,并根据校验组件数据生成应用程序对应的校验组件;基于校验组件在预设事件源集合中筛选出匹配的目标事件源;对目标事件源进行至少一种类型的校验处理,得到校验结果;基于校验结果对应用程序的覆盖安装进行校验。
以上各个操作的具体实施可参见前面的实施例,在此不作赘述。应当说明的是,本申请实施例提供的计算机设备与上文实施例中的适用于覆盖安装校验方法属于同一构思,其具体实现过程详见以上方法实施例,此处不再赘述。
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
为此,本申请实施例提供一种计算机可读存储介质,其中存储有多条指令,该指令能够被处理器进行加载,以执行本申请实施例所提供的任一种覆盖安装校验方法中的步骤。例如,该指令可以执行如下步骤:
从服务器获取应用程序对应的目标版本的安装数据包以及校验组件数据;根据安装数据包对应用程序进行目标版本的覆盖安装处理,并根据校验组件数据生成应用程序对应的校验组件;基于校验组件在预设事件源集合中筛选出匹配的目标事件源;对目标事件源进行至少一种类型的校验处理,得到校验结果;基于校验结果对应用程序的覆盖安装进行校验。
其中,该计算机可读存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。
由于该计算机可读存储介质中所存储的指令,可以执行本申请实施例所提供的任一种覆盖安装校验方法中的步骤,因此,可以实现本申请实施例所提供的任一种覆盖安装校验方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
其中,根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述实施例提供的各种可选实现方式中提供的方法。
以上对本申请实施例所提供的一种覆盖安装校验方法、装置和计算机可读存储介质进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (11)
1.一种覆盖安装校验方法,其特征在于,包括:
从服务器获取应用程序对应的目标版本的安装数据包以及校验组件数据;
根据所述安装数据包对所述应用程序进行目标版本的覆盖安装处理,并根据所述校验组件数据生成所述应用程序对应的校验组件;
基于所述校验组件在预设事件源集合中筛选出匹配的目标事件源;
对所述目标事件源进行至少一种类型的校验处理,得到校验结果;
基于所述校验结果对所述应用程序的覆盖安装进行校验。
2.如权利要求1所述的覆盖安装校验方法,其特征在于,所述对所述目标事件源进行至少一种类型的校验处理,得到校验结果,包括:
从服务器中获取所述应用程序对应的工程变量信息,并在所述工程变量信息中提取出校验的类型参数;
根据所述类型参数,在预设校验类型集合中识别出与所述目标事件源匹配的至少一种校验类型;
基于所述校验类型对所述目标事件源进行校验处理,得到每一校验类型对应的校验结果。
3.如权利要求2所述的覆盖安装校验方法,其特征在于,所述基于所述校验类型对所述目标事件源进行校验处理,得到每一校验类型对应的校验结果,包括:
在所述目标事件源对应的校验类型为数据安全校验类型时,对所述目标事件源进行数据安全校验,得到数据安全校验结果;
在所述目标事件源对应的校验类型为事件触发逻辑校验类型时,对所述目标事件源进行事件触发逻辑校验,得到事件触发逻辑校验结果;
在所述目标事件源对应的校验类型为软件开发工具包更新校验类型时,对所述目标事件源进行软件开发工具包更新校验,得到软件包更新校验结果;
基于所述数据安全校验结果、事件触发逻辑校验结果以及软件包更新校验结果,确定校验结果。
4.如权利要求3所述的覆盖安装校验方法,其特征在于,所述对所述目标事件源进行数据安全校验,得到数据安全校验结果,包括:
获取所述目标事件源对应接口的接口数据属性;
根据所述接口数据属性以及预设数据安全校验类型确定接口输入参数;
基于所述接口输入参数调用所述目标事件源对应的接口,并基于调用结果确定数据安全校验结果。
5.如权利要求3所述的覆盖安装校验方法,其特征在于,所述对所述目标事件源进行事件触发逻辑校验,得到事件触发逻辑校验结果,包括:
获取交互指令集合,所述交互指令集合中包括至少一个交互指令,以及所述交互指令对应的期望执行结果;
基于所述交互指令执行所述目标事件源,并记录执行后的目标事件源对应的调用堆栈;
将所述调用堆栈和期望执行结果进行比对,得到事件触发逻辑校验结果。
6.如权利要求1所述的覆盖安装校验方法,其特征在于,所述根据所述校验组件数据生成所述应用程序对应的校验组件,包括:
提取所述校验组件数据中的字符数据,并将所述字符数据进行词性分析,得到所述字符数据对应的标记数据;
对所述标记数据进行语法分析,并基于语法分析结果构建代码结构信息;
根据所述代码结构信息,构建所述应用程序对应的校验组件。
7.如权利要求1所述的覆盖安装校验方法,其特征在于,所述从服务器获取应用程序对应的目标版本的安装数据包以及校验组件数据,包括:
当接收到应用程序针对目标版本的覆盖安装请求时,获取校验组件数据,并从服务器获取所述应用程序对应的工程变量信息;
在所述工程变量信息中提取出版本字段,并根据所述版本字段在本地存储中搜索所述应用程序对应的目标版本的安装数据包;
当未搜索到所述安装数据包时,在所述工程变量信息中提取出所述安装数据包对应的文件路径信息,并基于所述文件路径信息拉取所述安装数据包。
8.一种覆盖安装校验装置,其特征在于,包括:
获取单元,用于从服务器获取应用程序对应的目标版本的安装数据包以及校验组件数据;
安装单元,用于根据所述安装数据包对所述应用程序进行目标版本的覆盖安装处理,并根据所述校验组件数据生成所述应用程序对应的校验组件;
筛选单元,用于基于所述校验组件在预设事件源集合中筛选出匹配的目标事件源;
执行单元,用于对所述目标事件源进行至少一种类型的校验处理,得到校验结果;
校验单元,用于基于所述校验结果对所述应用程序的覆盖安装进行校验。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有多条指令,所述指令适于处理器进行加载,以执行权利要求1至7中任一项所述的覆盖安装校验方法中的步骤。
10.一种计算机设备,其特征在于,包括存储器、处理器以及存储在所述存储器中并可以在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述的覆盖安装校验方法。
11.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机程序/指令,所述计算机程序/指令被处理器执行时实现权利要求1至7中任一项所述的覆盖安装校验方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210834426.1A CN117436080A (zh) | 2022-07-14 | 2022-07-14 | 覆盖安装校验方法、装置和计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210834426.1A CN117436080A (zh) | 2022-07-14 | 2022-07-14 | 覆盖安装校验方法、装置和计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117436080A true CN117436080A (zh) | 2024-01-23 |
Family
ID=89546826
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210834426.1A Pending CN117436080A (zh) | 2022-07-14 | 2022-07-14 | 覆盖安装校验方法、装置和计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117436080A (zh) |
-
2022
- 2022-07-14 CN CN202210834426.1A patent/CN117436080A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11599348B2 (en) | Container image building using shared resources | |
US9575739B2 (en) | Performing unattended software installation | |
US11429365B2 (en) | Systems and methods for automated retrofitting of customized code objects | |
US20110258600A1 (en) | Using a dsl for calling apis to test software | |
CN111061643B (zh) | Sdk集群的兼容性检测方法、装置、电子设备及存储介质 | |
EP2786279A2 (en) | Deployment of a driver or an application on a client device having a write-filter | |
US9311077B2 (en) | Identification of code changes using language syntax and changeset data | |
CN109086051B (zh) | 应用组件部署方法、装置及计算机存储介质 | |
US20080244562A1 (en) | Method of Identifying and Checking Software Installation Requirements | |
CN111897570A (zh) | 一种基于Maven插件的多依赖项文件提取方法及装置 | |
US11392366B1 (en) | Optimized compilation of pipelines for continuous delivery of services on datacenters configured in cloud platforms | |
US9513762B1 (en) | Static content updates | |
US20060123016A1 (en) | Metadata driven method and apparatus to configure heterogenous distributed systems | |
CN110704025A (zh) | 编码规范工具的生成方法和装置、存储介质、电子设备 | |
US10599424B2 (en) | Committed program-code management | |
CN108228266A (zh) | 一种Android插件框架下不同插件间启动Fragment组件的方法和装置 | |
CN113590179B (zh) | 插件检测方法、装置、电子设备及存储介质 | |
CN113791809B (zh) | 应用异常处理方法、装置以及计算机可读存储介质 | |
CN117436080A (zh) | 覆盖安装校验方法、装置和计算机可读存储介质 | |
CN111061642B (zh) | 一种基于用户数据的全自动竞赛数据处理***以及方法 | |
CN114489653A (zh) | 基于编译器的数据处理方法、装置以及可读存储介质 | |
EP2597568A1 (en) | Method and device for improving performance of mobile widget | |
CN112579461B (zh) | 断言处理方法、***和存储介质 | |
US11893120B1 (en) | Apparatus and method for efficient vulnerability detection in dependency trees | |
CN113377400A (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 |