一种应用程序的插件校验方法、设备、服务器及存储介质与流程

文档序号:18642296发布日期:2019-09-11 23:36阅读:150来源:国知局
一种应用程序的插件校验方法、设备、服务器及存储介质与流程

本发明涉及数据处理技术领域,尤其涉及一种应用程序的插件校验方法、设备、服务器及存储介质。



背景技术:

随着互联网的发展,各种互联网应用层出不穷。随着用户的需求增加,应用经常需要提供符合用户需求的新的功能。在应用的研发过程中,可以通过插件技术扩展应用程序的功能。插件是遵循一定规范的应用程序接口编写出来的程序,通过和应用程序的互动,来替代应用程序增加所需要的一些特定的功能。由于互联网应用版本迅速迭代和热修复的需求,要求应用程序支持插件化,即能够加载独立的插件安装包。

然而由于插件安装包可能被恶意篡改或者替换,如果应用程序加载了错误的插件安装包,可能会导致应用程序无法运行,用户信息泄露,甚至服务器受攻击。因此如何更有效地提高应用程序的安全性成为研究的重点。



技术实现要素:

本发明实施例提供了一种应用程序的插件校验方法、设备、服务器及存储介质,可实现对应用程序插件的安全性校验,提高了应用程序插件的安全性。

第一方面,本发明实施例提供了一种应用程序的插件校验方法,该方法包括:

获取目标应用程序发送的插件安装请求,所述插件安装请求中携带了插件安装包;

检测所述目标应用程序当前所处的应用环境是否建立了网络连接;

如果检测到所述目标应用程序当前所处的应用环境没有建立网络连接,则根据所述插件安装包确定第一插件信息,并对所述第一插件信息进行校验,如果对所述第一插件信息校验成功,则确定对所述插件校验成功;

如果检测到所述目标应用程序当前所处的应用环境建立了网络连接,则根据所述插件安装包确定第一插件信息和第二插件信息,并对所述第一插件信息和所述第二插件信息进行校验,如果对所述第一插件信息和所述第二插件信息校验成功,则确定对所述插件校验成功;

如果确定对所述插件校验成功,则启动所述插件安装请求携带的所述插件安装包,以安装所述插件。

进一步地,所述第一插件信息包括插件包名和插件签名;所述根据所述插件安装包确定第一插件信息,包括:

对所述插件安装请求中携带的插件安装包进行解压,得到所述插件安装包的目标文件;

从所述目标文件中确定出所述插件安装包的插件包名和插件签名;

所述对所述第一插件信息进行校验,包括:

检测所述插件安装包中携带的插件包名是否与所述目标应用程序中注册的插件包名一致;

如果检测到所述插件安装包中携带的插件包名与所述目标应用程序中注册的插件包名一致,则确定所述插件包名安全,并对所述插件签名进行校验;

如果对所述插件签名校验成功,则确定对所述第一插件信息校验成功。

进一步地,所述对所述插件签名进行校验,包括:

获取历史记录中记录的上一次安装的所述插件安装包的历史插件签名;

检测所述插件安装包中携带的所述插件签名是否与所述历史记录中记录的上一次安装的所述插件安装包的历史插件签名一致;

如果检测到所述插件安装包中携带的所述插件签名与所述历史记录中记录的上一次安装的所述插件安装包的历史插件签名一致,则确定所述插件签名安全,并确定对所述第一插件信息的校验成功。

进一步地,所述第一插件信息包括插件包名和插件签名,所述第二插件信息包括插件更新时间和数字签名值;所述根据所述插件安装包确定第一插件信息和第二插件信息,包括:

对所述插件安装请求中携带的插件安装包进行解压,得到所述插件安装包的目标文件;

从所述目标文件中确定出所述插件安装包的插件包名和插件签名;以及,

从所述目标文件中确定出所述插件安装包最近一次的插件更新时间和数字签名。

进一步地,所述对所述第一插件信息和所述第二插件信息进行校验,包括:

获取历史记录中记录的上一次安装的所述插件安装包的历史插件签名;

检测所述插件安装包中携带的所述插件签名是否与所述历史记录中记录的上一次安装的所述插件安装包的历史插件签名一致;

如果检测到所述插件安装包中携带的所述插件签名与所述历史记录中记录的上一次安装的所述插件安装包的历史插件签名一致,则确定对所述第一插件信息的校验成功;

在对所述第一插件信息的校验成功之后,对所述插件安装包的插件更新时间和数字签名值进行校验。

进一步地,所述对所述插件安装包的插件更新时间和数字签名值进行校验,包括:

将确定出的所述插件安装包最近一次的插件更新时间与历史记录中存储的所述插件安装包的插件更新时间进行比较;

如果比较得到所述插件安装包最近一次的插件更新时间与历史记录中存储的所述插件安装包的插件更新时间一致,则确定对所述插件更新时间的校验成功,并对所述插件安装包的数字签名进行校验;

如果确定对所述数字签名校验成功,则确定对所述第二插件信息校验成功。

进一步地,所述数字签名包括md5值;所述对所述插件安装包的数字签名进行校验,包括:

将所述插件安装包的md5值与历史记录中存储的所述插件安装包的数字签名进行对比;

如果对比结果为所述插件安装包的md5值与历史记录中存储的所述插件安装包的数字签名相同,则确定对所述数字签名的校验成功。

第二方面,本发明实施例提供了一种应用程序的插件校验设备,该应用程序的插件校验设备包括用于执行上述第一方面的应用程序的插件校验方法的单元。

第三方面,本发明实施例提供了一种服务器,包括处理器、输入设备、输出设备和存储器,所述处理器、输入设备、输出设备和存储器相互连接,其中,所述存储器用于存储支持应用程序的插件校验设备执行上述方法的计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行上述第一方面的方法。

第四方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行上述第一方面的方法。

本发明实施例中,应用程序的插件校验设备在获取到目标应用程序发送的携带插件安装包的插件安装请求时,如果检测到目标应用程序所处的应用环境没有建立网络连接,则可以对根据插件安装包确定的第一插件信息进行校验,如果对第一插件信息校验成功,则可以启动插件安装包安装所述插件。如果检测到目标应用程序当前所处的应用环境建立了网络连接,则可以对根据插件安装包确定的第一插件信息和第二插件信息进行校验,如果对第一插件信息和第二插件信息校验成功,则可以启动插件安装包安装所述插件。通过对应用程序的插件进行校验,提高了插件的安全性,从而提高了应用程序的安全性。

附图说明

为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例提供的一种应用程序的插件校验方法的示意流程图;

图2是本发明实施例提供的另一种应用程序的插件校验方法的示意流程图;

图3是本发明实施例提供的又一种应用程序的插件校验方法的示意流程图;

图4是本发明实施例提供的一种应用程序的插件校验设备的示意框图;

图5是本发明实施例提供的一种服务器的示意框图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例提供的应用程序的插件校验方法可以由一种应用程序的插件校验设备执行,其中,所述应用程序的插件校验设备可以设置在服务器上,所述服务器可以包括手机、电脑、平板、智能手表等终端设备。在一个实施例中,所述应用程序的插件校验设备可以与智能终端建立通信连接,以进行双向通信。在某些实施例中,所述应用程序的插件校验设备可以安装在所述智能终端上,在某些实施例中,所述应用程序的插件校验设备可以在空间上独立于所述智能终端,在某些实施例中,所述应用程序的插件校验设备可以是所述终端的部件,即所述终端包括应用程序的插件校验设备。在某些实施例中,所述智能终端可以包括:手机、电脑、平板、智能手表等终端设备。

本发明实施例中,应用程序的插件校验设备可以获取目标应用程序发送的插件安装请求,所述插件安装请求中携带了插件安装包。在某些实施例中,智能终端中可以包括至少一个应用程序,其中,每一个应用程序均是通过插件安装包安装得到,因此每个应用程序均是各自插件安装包的宿主。在一个实施例中,当所述应用程序的插件校验设备获取到目标应用程序发送的插件安装请求时,可以检测所述目标应用程序当前所处的应用环境是否建立网络连接。如果检测到所述目标应用程序当前所处的应用环境没有建立网络连接,则可以根据所述插件安装请求中携带的插件安装包确定第一插件信息,并对所述第一插件信息进行校验,如果对所述第一插件信息校验成功,则可以确定对所述插件校验成功。如果检测到所述目标应用程序当前所处的应用环境建立了网络连接,则可以根据所述插件安装请求中携带的插件安装包确定第一插件信息和第二插件信息,并对所述第一插件信息和所述第二插件信息进行校验,如果对所述第一插件信息和所述第二插件信息校验成功,则可以确定对所述插件校验成功。如果确定对所述插件校验成功,则可以响应所述插件安装请求,启动所述插件安装请求携带的所述插件安装包,以安装所述插件。下面结合附图对本发明实施例的应用程序的插件校验方法进行示意性说明。

请参见图1,图1是本发明实施例提供的一种应用程序的插件校验方法的示意流程图,如图1所示,该方法可以由应用程序的插件校验设备执行,所述应用程序的插件校验设备的具体解释如前所述,此处不再赘述。具体地,本发明实施例的所述方法包括如下步骤。

s101:获取目标应用程序发送的插件安装请求,所述插件安装请求中携带了插件安装包。

本发明实施例中,应用程序的插件校验设备可以获取目标应用程序发送的插件安装请求,所述插件安装请求中携带了插件安装包。在某些实施例中,所述插件安装包包括但不限于安卓安装包(androidpackage,apk)。

s102:检测所述目标应用程序当前所处的应用环境是否建立了网络连接。

本发明实施例中,应用程序的插件校验设备在获取到目标应用程序发送的插件安装请求时,可以检测所述目标应用程序当前所处的应用环境是否建立了网络连接。在某些实施例中,所述网络连接可以包括但不限于诸如4g或5g等移动通信网络连接。

s103:如果检测到所述目标应用程序当前所处的应用环境没有建立网络连接,则根据所述插件安装包确定第一插件信息,并对所述第一插件信息进行校验,如果对所述第一插件信息校验成功,则确定对所述插件校验成功。

本发明实施例中,应用程序的插件校验设备如果检测到所述目标应用程序当前所处的应用环境没有建立网络连接,则可以根据所述插件安装包确定第一插件信息,并对所述第一插件信息进行校验,如果对所述第一插件信息校验成功,则可以确定对所述插件校验成功。

在一个实施例中,所述第一插件信息包括插件包名和插件签名,所述应用程序的插件校验设备在根据所述插件安装包确定第一插件信息时,可以对所述插件安装请求中携带的插件安装包进行解压,得到所述插件安装包的目标文件,并从所述目标文件中确地出所述插件安装包的插件包名和插件签名。在某些实施例中,所述插件包名可以包括字母、数字、文字等任意一种或多种组合得到的名称,本发明实施例不做具体限定。

在一个实施例中,所述应用程序的插件校验设备在对第一插件信息进行校验时,可以检测所述插件安装包中携带的插件包名是否与所述目标应用程序中注册的插件包名一致;如果检测到所述插件安装包中携带的插件包名与所述目标应用程序中注册的插件包名一致,则可以确定所述插件包名安全,并对所述插件签名进行校验;如果对所述插件签名校验成功,则可以确定对所述第一插件信息校验成功。

例如,假设所述插件安装包为安卓的apk,则所述应用程序的插件校验设备可以检测所述插件apk中携带的插件包名是否与所述目标应用程序中注册的插件包名一致;如果检测到所述插件apk中携带的插件包名与所述目标应用程序中注册的插件包名一致,则可以确定所述插件包名安全,并对所述插件签名进行校验;如果对所述插件签名校验成功,则可以确定对所述第一插件信息校验成功。

在一个实施例中,应用程序的插件校验设备在对插件签名进行校验时,可以获取历史记录中记录的上一次安装的所述插件安装包的历史插件签名,并检测所述插件安装包中携带的所述插件签名是否与所述历史记录中记录的上一次安装的所述插件安装包的历史插件签名一致。如果检测到所述插件安装包中携带的所述插件签名与所述历史记录中记录的上一次安装的所述插件安装包的历史插件签名一致,则可以确定所述插件签名安全,并确定对所述第一插件信息的校验成功。如果检测到所述插件安装包中携带的所述插件签名与所述历史记录中记录的上一次安装的所述插件安装包的历史插件签名不一致,则可以确定对所述第一插件信息的校验失败。

s104:如果检测到所述目标应用程序当前所处的应用环境建立了网络连接,则根据所述插件安装包确定第一插件信息和第二插件信息,并对所述第一插件信息和所述第二插件信息进行校验,如果对所述第一插件信息和所述第二插件信息校验成功,则确定对所述插件校验成功。

本发明实施例中,应用程序的插件校验设备如果检测到所述目标应用程序当前所处的应用环境建立了网络连接,则可以根据所述插件安装包确定第一插件信息和第二插件信息,并对所述第一插件信息和所述第二插件信息进行校验,如果对所述第一插件信息和所述第二插件信息校验成功,则可以确定对所述插件校验成功。

在一个实施例中,所述第一插件信息包括插件包名和插件签名,所述第二插件信息包括插件更新时间和数字签名值。所述应用程序的插件校验设备可以对所述插件安装请求中携带的插件安装包进行解压,得到所述插件安装包的目标文件,并从所述目标文件中确定出所述插件安装包的插件包名和插件签名;以及,从所述目标文件中确定出所述插件安装包最近一次的插件更新时间和数字签名。

在某些实施例中,所述目标文件可以包括但不限定于插件安装包中的meta-inf/manifest.mf文件,其中,所述meta-inf/manifest.mf文件用于存储插件的配置信息(如属性信息、类信息、插件信息等)。在某些实施例中,所述数字签名值是通过消息摘要算法对插件安装包进行加密得到的,并在对插件安装包进行加密得到所述数字签名时,将所述数字签名存储至服务器的历史记录中。

在一个实施例中,所述应用程序的插件校验设备在对所述第一插件信息和所述第二插件信息进行校验时,可以分别对第一插件信息和第二插件信息进行校验。如果确定出对所述第一插件信息校验成功以及对所述第二插件信息校验成功,则可以确定对所述插件校验成功。如果确定出对所述第一插件信息或第二插件信息校验失败,则可以确定对所述插件校验失败。

在一个实施例中,所述应用程序的插件校验设备在对所述第一插件信息和所述第二插件信息进行校验时,可以优先对第一插件信息进行校验,如果确定对第一插件信息校验失败,则可以确定对所述插件校验失败。如果确定对第一插件信息校验成功,则进一步对所述第二插件信息进行校验,如果确定对所述第二插件信息校验成功,则可以确定对所述插件校验成功。

在一个实施例中,所述应用程序的插件校验设备在对所述第一插件信息和所述第二插件信息进行校验时,可以优先对第二插件信息进行校验,如果确定对第二插件信息校验失败,则可以确定对所述插件校验失败。如果确定对第二插件信息校验成功,则进一步对所述第一插件信息进行校验,如果确定对所述第一插件信息校验成功,则可以确定对所述插件校验成功。

在一个实施例中,所述应用程序的插件校验设备对所述第一插件信息进行校验的实施例如前所述,此处不再赘述。

s105:如果确定对所述插件校验成功,则启动所述插件安装请求携带的所述插件安装包,以安装所述插件。

本发明实施例中,应用程序的插件校验设备如果确定对所述插件校验成功,则可以启动所述插件安装请求携带的所述插件安装包,以安装所述插件。

本发明实施例,应用程序的插件校验设备可以在获取到目标应用程序发送的携带插件安装包的插件安装请求时,检测所述目标应用程序当前所处的应用环境是否建立了网络连接。如果检测结果为没有建立网络连接,则可以对根据所述插件安装包确定的第一插件信息进行校验,如果对所述第一插件信息校验成功,则确定对所述插件校验成功。如果检测结果为建立了网络连接,则可以对根据所述插件安装包确定的第一插件信息和第二插件信息进行校验,如果对所述第一插件信息和所述第二插件信息校验成功,则可以确定对所述插件校验成功。如果确定对所述插件校验成功,则可以启动插件安装包,以安装插件。通过这种针对不同的应用环境对不同的插件信息进行校验的方式,可以确保插件的安全性,从而提高应用程序的安全性。

请参见图2,图2是本发明实施例提供的另一种应用程序的插件校验方法的示意流程图,如图2所示,该方法可以由应用程序的插件校验设备执行,该应用程序的插件校验设备的具体解释如前所述,此处不再赘述。本发明实施例与上述图1所述实施例的区别在于,本发明实施例是对目标应用程序所处的应用环境没有建立通信连接的情况下的应用程序的插件校验方法的具体实施过程进行示意性说明。具体地,本发明实施例的所述方法包括如下步骤。

s201:获取目标应用程序发送的插件安装请求,所述插件安装请求中携带了插件安装包。

本发明实施例中,应用程序的插件校验设备可以获取目标应用程序发送的插件安装请求,所述插件安装请求中携带了插件安装包,具体实施例如前所述,此处不再赘述。

s202:如果检测到所述目标应用程序当前所处的应用环境没有建立网络连接,则对所述插件安装请求中携带的插件安装包进行解压,得到所述插件安装包的目标文件。

本发明实施例中,应用程序的插件校验如果检测到所述目标应用程序当前所处的应用环境没有建立网络连接,则可以对所述插件安装请求中携带的插件安装包进行解压,得到所述插件安装包的目标文件。

s203:从所述目标文件中确定出所述插件安装包的第一插件信息,其中,所述第一插件信息包括插件包名和插件签名。

本发明实施例中,应用程序的插件校验设备可以从所述目标文件中确定出所述插件安装包的第一插件信息,其中,所述第一插件信息包括插件包名和插件签名。

在一个实施例中,所述应用程序的插件校验设备可以根据预设算法读取所述目标文件中读取数据信息,并从所述数据信息中获取所述插件包名和插件签名。在某些实施例中,所述预设算法可以是读取数据的任意算法,本发明实施例不做具体限定。

s204:检测所述插件安装包中携带的插件包名是否与所述目标应用程序中注册的插件包名一致。

本发明实施例中,应用程序的插件校验设备可以检测所述插件安装包中携带的插件包名是否与所述目标应用程序中注册的插件包名一致。

s205:如果检测到所述插件安装包中携带的插件包名与所述目标应用程序中注册的插件包名一致,则确定所述插件包名安全,并对所述插件签名进行校验。

本发明实施例中,应用程序的插件校验设备如果检测到所述插件安装包中携带的插件包名与所述目标应用程序中注册的插件包名一致,则可以确定所述插件包名安全,并对所述插件签名进行校验。

在一个实施例中,应用程序的插件校验设备在对插件签名进行校验时,可以获取历史记录中记录的上一次安装的所述插件安装包的历史插件签名,并检测所述插件安装包中携带的所述插件签名是否与所述历史记录中记录的上一次安装的所述插件安装包的历史插件签名一致。如果检测到所述插件安装包中携带的所述插件签名与所述历史记录中记录的上一次安装的所述插件安装包的历史插件签名一致,则可以确定对所述插件签名校验成功。

s206:如果对所述插件签名校验成功,则确定对所述第一插件信息校验成功。

本发明实施例中,应用程序的插件校验设备如果对所述插件签名校验成功,则可以确定对所述第一插件信息校验成功。

s207:启动所述插件安装请求携带的所述插件安装包,安装所述插件。

本发明实施例中,在确定对所述第一插件信息校验成功时,所述应用程序的插件校验设备可以启动所述插件安装请求携带的所述插件安装包,安装所述插件。

本发明实施例中,应用程序的插件校验设备可以在获取到目标应用程序发送的携带插件安装包的插件安装请求时,检测所述目标应用程序当前所处的应用环境是否建立了网络连接。如果检测结果为没有建立网络连接,则可以对根据所述插件安装包确定的第一插件信息进行校验,如果对所述第一插件信息校验成功,则可以确定对所述插件校验成功,并启动插件安装包安装插件。通过这种在没有建立网络连接的应用环境下对第一插件信息进行校验的方式,可以确保插件的安全性,从而提高应用程序的安全性。

请参见图3,图3是本发明实施例提供的又一种应用程序的插件校验方法的示意流程图,如图3所示,该方法可以由应用程序的插件校验设备执行,该应用程序的插件校验设备的具体解释如前所述,此处不再赘述。本发明实施例与上述图1所述实施例的区别在于,本发明实施例是对目标应用程序所处的应用环境建立了通信连接的情况下的应用程序的插件校验方法的具体实施过程进行示意性说明。具体地,本发明实施例的所述方法包括如下步骤。

s301:获取目标应用程序发送的插件安装请求,所述插件安装请求中携带了插件安装包。

本发明实施例中,应用程序的插件校验设备可以获取目标应用程序发送的插件安装请求,所述插件安装请求中携带了插件安装包,具体实施例如前所述,此处不再赘述。

s302:如果检测到所述目标应用程序当前所处的应用环境建立了网络连接,则对所述插件安装请求中携带的插件安装包进行解压,得到所述插件安装包的目标文件。

本发明实施例中,应用程序的插件校验设备如果检测到所述目标应用程序当前所处的应用环境建立了网络连接,则可以对所述插件安装请求中携带的插件安装包进行解压,得到所述插件安装包的目标文件。

s303:从所述目标文件中确定出所述插件安装包的第一插件信息和第二插件信息,所述第一插件信息包括插件包名和插件签名,所述第二插件信息包括插件更新时间和数字签名。

本发明实施例中,应用程序的插件校验设备可以从所述目标文件中确定出所述插件安装包的第一插件信息和第二插件信息,所述第一插件信息包括插件包名和插件签名,所述第二插件信息包括插件更新时间和数字签名。

在一个实施例中,所述应用程序的插件校验设备可以根据预设算法读取所述目标文件中读取数据信息,并从所述数据信息中获取所述插件包名和插件签名,以及,插件更新时间和数字签名。

s304:检测所述插件安装包中携带的所述插件签名是否与所述历史记录中记录的上一次安装的所述插件安装包的历史插件签名一致。

本发明实施例中,应用程序的插件校验设备可以检测所述插件安装包中携带的所述插件签名是否与所述历史记录中记录的上一次安装的所述插件安装包的历史插件签名一致。

s305:如果检测到所述插件安装包中携带的所述插件签名与所述历史记录中记录的上一次安装的所述插件安装包的历史插件签名一致,则确定对所述第一插件信息的校验成功。

本发明实施例中,如果检测到所述插件安装包中携带的所述插件签名与所述历史记录中记录的上一次安装的所述插件安装包的历史插件签名一致,则应用程序的插件校验设备可以确定对所述第一插件信息的校验成功。

s306:在对所述第一插件信息的校验成功之后,对所述插件安装包的插件更新时间和数字签名值进行校验。

本发明实施例中,应用程序的插件校验设备在对所述第一插件信息的校验成功之后,可以对所述插件安装包的插件更新时间和数字签名值进行校验。

在一个实施例中,所述应用程序的插件校验设备在对所述插件安装包的插件更新时间和数字签名值进行校验时,可以将确定出的所述插件安装包最近一次的插件更新时间与历史记录中存储的所述插件安装包的插件更新时间进行比较。如果比较得到所述插件安装包最近一次的插件更新时间与历史记录中存储的所述插件安装包的插件更新时间不一致,则可以确定对所述插件更新时间的校验失败,即可以确定对所述第二插件信息校验失败。如果比较得到所述插件安装包最近一次的插件更新时间与历史记录中存储的所述插件安装包的插件更新时间一致,则可以确定对所述插件更新时间的校验成功,并对所述插件安装包的数字签名进行校验。如果确定对所述数字签名校验成功,则可以确定对所述第二插件信息校验成功。

在一个实施例中,所述数字签名包括md5值,所述应用程序的插件校验设备在对所述插件安装包的数字签名进行校验时,可以将所述插件安装包的md5值与历史记录中存储的所述插件安装包的数字签名进行对比。如果对比结果为所述插件安装包的md5值与历史记录中存储的所述插件安装包的数字签名相同,则可以确定对所述数字签名的校验成功。如果对比结果为所述插件安装包的md5值与历史记录中存储的所述插件安装包的数字签名不相同,则可以确定对所述数字签名的校验失败。

例如,假设所述插件安装包为安卓的插件apk,应用程序的插件校验设备在对所述第二插件信息进行校验时,可以对所述插件安装请求中携带的插件apk进行解压,以得到所述插件apk中的目标文件。在获取到所述插件apk的目标文件之后,可以根据预设算法读取所述目标文件里的数据信息,并从所述目标文件里的数据信息获取所述插件apk最近一次的插件更新时间。将从所述目标文件里获取到的所述插件apk最近一次的插件更新时间与历史记录中存储的所述插件apk的插件更新时间进行比较,如果比较结果一致,则可以确定对所述插件更新时间校验成功。如果数字签名为md5值,则应用程序的插件校验设备可以对所述插件更新时间校验成功之后,对所述插件apk的md5值进行校验。如果确定对所述md5值校验成功,则可以确定对所述第二插件信息校验成功。

s307:如果确定对所述插件更新时间和数字签名校验成功,则确定对所述第二插件信息校验成功,并启动所述插件安装请求携带的所述插件安装包,以安装所述插件。

本发明实施例中,应用程序的插件校验设备如果确定对所述插件更新时间和数字签名校验成功,则可以确定对所述第二插件信息校验成功,并启动所述插件安装请求携带的所述插件安装包,以安装所述插件。

本发明实施例还提供了一种应用程序的插件校验设备,该应用程序的插件校验设备用于执行前述任一项所述的方法的单元。具体地,参见图4,图4是本发明实施例提供的一种应用程序的插件校验设备的示意框图。本实施例的应用程序的插件校验设备包括:获取单元401、检测单元402、第一校验单元403、第二校验单元404以及安装单元405。

获取单元401,用于获取目标应用程序发送的插件安装请求,所述插件安装请求中携带了插件安装包;

检测单元402,用于检测所述目标应用程序当前所处的应用环境是否建立了网络连接;

第一校验单元403,用于如果检测到所述目标应用程序当前所处的应用环境没有建立网络连接,则根据所述插件安装包确定第一插件信息,并对所述第一插件信息进行校验,如果对所述第一插件信息校验成功,则确定对所述插件校验成功;

第二校验单元404,用于如果检测到所述目标应用程序当前所处的应用环境建立了网络连接,则根据所述插件安装包确定第一插件信息和第二插件信息,并对所述第一插件信息和所述第二插件信息进行校验,如果对所述第一插件信息和所述第二插件信息校验成功,则确定对所述插件校验成功;

安装单元405,用于如果确定对所述插件校验成功,则启动所述插件安装请求携带的所述插件安装包,以安装所述插件。

进一步地,所述第一插件信息包括插件包名和插件签名;所述第一校验单元403根据所述插件安装包确定第一插件信息时,具体用于:

对所述插件安装请求中携带的插件安装包进行解压,得到所述插件安装包的目标文件;

从所述目标文件中确定出所述插件安装包的插件包名和插件签名;

所述第一校验单元403对所述第一插件信息进行校验时,具体用于:

检测所述插件安装包中携带的插件包名是否与所述目标应用程序中注册的插件包名一致;

如果检测到所述插件安装包中携带的插件包名与所述目标应用程序中注册的插件包名一致,则确定所述插件包名安全,并对所述插件签名进行校验;

如果对所述插件签名校验成功,则确定对所述第一插件信息校验成功。

进一步地,所述第一校验单元403对所述插件签名进行校验时,具体用于:

获取历史记录中记录的上一次安装的所述插件安装包的历史插件签名;

检测所述插件安装包中携带的所述插件签名是否与所述历史记录中记录的上一次安装的所述插件安装包的历史插件签名一致;

如果检测到所述插件安装包中携带的所述插件签名与所述历史记录中记录的上一次安装的所述插件安装包的历史插件签名一致,则确定所述插件签名安全,并确定对所述第一插件信息的校验成功。

进一步地,所述第一插件信息包括插件包名和插件签名,所述第二插件信息包括插件更新时间和数字签名值;所述第二校验单元404根据所述插件安装包确定第一插件信息和第二插件信息时,具体用于:

对所述插件安装请求中携带的插件安装包进行解压,得到所述插件安装包的目标文件;

从所述目标文件中确定出所述插件安装包的插件包名和插件签名;以及,

从所述目标文件中确定出所述插件安装包最近一次的插件更新时间和数字签名。

进一步地,所述第二校验单元404对所述第一插件信息和所述第二插件信息进行校验时,具体用于:

获取历史记录中记录的上一次安装的所述插件安装包的历史插件签名;

检测所述插件安装包中携带的所述插件签名是否与所述历史记录中记录的上一次安装的所述插件安装包的历史插件签名一致;

如果检测到所述插件安装包中携带的所述插件签名与所述历史记录中记录的上一次安装的所述插件安装包的历史插件签名一致,则确定对所述第一插件信息的校验成功;

在对所述第一插件信息的校验成功之后,对所述插件安装包的插件更新时间和数字签名值进行校验。

进一步地,所述第二校验单元404对所述插件安装包的插件更新时间和数字签名值进行校验时,具体用于:

将确定出的所述插件安装包最近一次的插件更新时间与历史记录中存储的所述插件安装包的插件更新时间进行比较;

如果比较得到所述插件安装包最近一次的插件更新时间与历史记录中存储的所述插件安装包的插件更新时间一致,则确定对所述插件更新时间的校验成功,并对所述插件安装包的数字签名进行校验;

如果确定对所述数字签名校验成功,则确定对所述第二插件信息校验成功。

进一步地,所述数字签名包括md5值;所述第二校验单元404对所述插件安装包的数字签名进行校验时,具体用于:

将所述插件安装包的md5值与历史记录中存储的所述插件安装包的数字签名进行对比;

如果对比结果为所述插件安装包的md5值与历史记录中存储的所述插件安装包的数字签名相同,则确定对所述数字签名的校验成功。

本发明实施例中,应用程序的插件校验设备可以在获取到目标应用程序发送的携带插件安装包的插件安装请求时,检测所述目标应用程序当前所处的应用环境是否建立了网络连接。如果检测结果为没有建立网络连接,则可以对根据所述插件安装包确定的第一插件信息进行校验,如果对所述第一插件信息校验成功,则确定对所述插件校验成功。如果检测结果为建立了网络连接,则可以对根据所述插件安装包确定的第一插件信息和第二插件信息进行校验,如果对所述第一插件信息和所述第二插件信息校验成功,则可以确定对所述插件校验成功。如果确定对所述插件校验成功,则可以启动插件安装包,以安装插件。通过这种针对不同的应用环境对不同的插件信息进行校验的方式,可以确保插件的安全性,从而提高应用程序的安全性。

参见图5,图5是本发明实施例提供的一种服务器的示意框图。如图所示的本实施例中的服务器可以包括:一个或多个处理器501;一个或多个输入设备502,一个或多个输出设备503和存储器504。上述处理器501、输入设备502、输出设备503和存储器504通过总线505连接。存储器504用于存储计算机程序,所述计算机程序包括程序指令,处理器501用于执行存储器504存储的程序指令。其中,处理器501被配置用于调用所述程序指令执行:

获取目标应用程序发送的插件安装请求,所述插件安装请求中携带了插件安装包;

检测所述目标应用程序当前所处的应用环境是否建立了网络连接;

如果检测到所述目标应用程序当前所处的应用环境没有建立网络连接,则根据所述插件安装包确定第一插件信息,并对所述第一插件信息进行校验,如果对所述第一插件信息校验成功,则确定对所述插件校验成功;

如果检测到所述目标应用程序当前所处的应用环境建立了网络连接,则根据所述插件安装包确定第一插件信息和第二插件信息,并对所述第一插件信息和所述第二插件信息进行校验,如果对所述第一插件信息和所述第二插件信息校验成功,则确定对所述插件校验成功;

如果确定对所述插件校验成功,则启动所述插件安装请求携带的所述插件安装包,以安装所述插件。

进一步地,所述第一插件信息包括插件包名和插件签名;所述处理器501根据所述插件安装包确定第一插件信息时,具体用于:

对所述插件安装请求中携带的插件安装包进行解压,得到所述插件安装包的目标文件;

从所述目标文件中确定出所述插件安装包的插件包名和插件签名;

所述处理器501对所述第一插件信息进行校验时,具体用于:

检测所述插件安装包中携带的插件包名是否与所述目标应用程序中注册的插件包名一致;

如果检测到所述插件安装包中携带的插件包名与所述目标应用程序中注册的插件包名一致,则确定所述插件包名安全,并对所述插件签名进行校验;

如果对所述插件签名校验成功,则确定对所述第一插件信息校验成功。

进一步地,所述处理器501对所述插件签名进行校验时,具体用于:

获取历史记录中记录的上一次安装的所述插件安装包的历史插件签名;

检测所述插件安装包中携带的所述插件签名是否与所述历史记录中记录的上一次安装的所述插件安装包的历史插件签名一致;

如果检测到所述插件安装包中携带的所述插件签名与所述历史记录中记录的上一次安装的所述插件安装包的历史插件签名一致,则确定所述插件签名安全,并确定对所述第一插件信息的校验成功。

进一步地,所述第一插件信息包括插件包名和插件签名,所述第二插件信息包括插件更新时间和数字签名值;所述处理器501根据所述插件安装包确定第一插件信息和第二插件信息时,具体用于:

对所述插件安装请求中携带的插件安装包进行解压,得到所述插件安装包的目标文件;

从所述目标文件中确定出所述插件安装包的插件包名和插件签名;以及,

从所述目标文件中确定出所述插件安装包最近一次的插件更新时间和数字签名。

进一步地,所述处理器501对所述第一插件信息和所述第二插件信息进行校验时,具体用于:

获取历史记录中记录的上一次安装的所述插件安装包的历史插件签名;

检测所述插件安装包中携带的所述插件签名是否与所述历史记录中记录的上一次安装的所述插件安装包的历史插件签名一致;

如果检测到所述插件安装包中携带的所述插件签名与所述历史记录中记录的上一次安装的所述插件安装包的历史插件签名一致,则确定对所述第一插件信息的校验成功;

在对所述第一插件信息的校验成功之后,对所述插件安装包的插件更新时间和数字签名值进行校验。

进一步地,所述处理器501对所述插件安装包的插件更新时间和数字签名值进行校验时,具体用于:

将确定出的所述插件安装包最近一次的插件更新时间与历史记录中存储的所述插件安装包的插件更新时间进行比较;

如果比较得到所述插件安装包最近一次的插件更新时间与历史记录中存储的所述插件安装包的插件更新时间一致,则确定对所述插件更新时间的校验成功,并对所述插件安装包的数字签名进行校验;

如果确定对所述数字签名校验成功,则确定对所述第二插件信息校验成功。

进一步地,所述数字签名包括md5值;所述处理器501对所述插件安装包的数字签名进行校验时,具体用于:

将所述插件安装包的md5值与历史记录中存储的所述插件安装包的数字签名进行对比;

如果对比结果为所述插件安装包的md5值与历史记录中存储的所述插件安装包的数字签名相同,则确定对所述数字签名的校验成功。

本发明实施例中,服务器可以在目标应用程序当前所处的应用环境没有建立网络连接的情况下,对根据插件安装请求中携带的插件安装包确定的第一插件信息进行校验,如果对所述第一插件信息校验成功,则可以确定对插件校验成功,并启动插件安装包安装插件。服务器可以在目标应用程序当前所处的应用环境建立了网络连接的情况下,对根据插件安装请求中携带的插件安装包确定的第一插件信息和第二插件信息进行校验,如果对所述第一插件信息和所述第二插件信息校验成功,则可以确定对所述插件校验成功,并启动插件安装包安装插件。通过这种针对不同的应用环境对不同的插件信息进行校验的方式,可以确保插件的安全性,从而提高应用程序的安全性。

应当理解,在本发明实施例中,所称处理器501可以是中央处理单元(censralprocessingunis,cpu),该处理器还可以是其他通用处理器、数字信号处理器(digisalsignalprocessor,dsp)、专用集成电路(applicasionspecificinsegrasedcircuis,asic)、现成可编程门阵列(field-programmablegasearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

输入设备502可以包括触控板、麦克风等,输出设备503可以包括显示器(lcd等)、扬声器等。

该存储器504可以包括只读存储器和随机存取存储器,并向处理器501提供指令和数据。存储器504的一部分还可以包括非易失性随机存取存储器。例如,存储器504还可以存储设备类型的信息。

具体实现中,本发明实施例中所描述的处理器501、输入设备502、输出设备503可执行本发明实施例提供的应用程序的插件校验方法的图1、图2或图3所述的方法实施例中所描述的实现方式,也可执行本发明实施例图4所描述的应用程序的插件校验设备的实现方式,在此不再赘述。

本发明实施例中还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现图1或图2所对应实施例中描述的应用程序的插件校验方法,也可实现本发明图3所对应实施例的应用程序的插件校验设备,在此不再赘述。

所述计算机可读存储介质可以是前述任一实施例所述的应用程序的插件校验设备的内部存储单元,例如应用程序的插件校验设备的硬盘或内存。所述计算机可读存储介质也可以是所述应用程序的插件校验设备的外部存储设备,例如所述应用程序的插件校验设备上配备的插接式硬盘,智能存储卡(smarsmediacard,smc),安全数字(securedigisal,sd)卡,闪存卡(flashcard)等。进一步地,所述计算机可读存储介质还可以既包括所述应用程序的插件校验设备的内部存储单元也包括外部存储设备。所述计算机可读存储介质用于存储所述计算机程序以及所述应用程序的插件校验设备所需的其他程序和数据。所述计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本发明的部分实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1