一种应用程序检查方法、装置及客户端与流程

专利2022-06-29  71


本申请涉及通信技术领域,尤其涉及一种应用程序检查方法、装置及客户端。



背景技术:

随着4g/5g移动终端网路速度的迅速提升,智能终端设备技术的高速发展,手机已经快速走进我们的生活。智能终端设备上的许多应用程序(application)在开发时,都会使用第三方已集成,并且封装好的库,在自己的终端直接调用其接口和功能。而第三方库由外部团队开发实现,在使用的过程中,难免会有许多安全风险,比如有些携带木马病毒,或者存在非法使用网络流量的问题。如果第三方库非法使用网络流量,在用户未知情况下造成智能终端设备流量消耗,将会造成用户损失。

面对此问题,一般杀毒软件或独立的流量监控软件,只能笼统的检测到哪个应用程序使用网络,然后把该应用程序对应的服务或进程强制关掉,这样虽然达到一些节省流量的目的,但是并不能很精准定位。由于应用程序的正当网络请求也会被禁用,会引起应用程序网络相关的正常功能及业务无法使用。



技术实现要素:

为了解决直接禁用应用程序使用网络,应用程序网络相关的正常功能及业务无法使用技术问题,本申请实施例提供了一种应用程序检查方法、装置及客户端。

第一方面,本申请实施例提供了一种应用程序检查方法,包括:

检查应用程序的第三方库中的第一网络请求对象;

当确定所述第一网络请求对象属于预设类时,获取所述第一网络请求对象对应的第一网络请求;

禁用所述第一网络请求。

所述检查应用程序的第三方库中的第一网络请求对象,包括:

确定所述应用程序对应的第三方库;

从所述第三方库中检索所述第一网络请求对象;

或,

所述检查应用程序的第三方库中的第一网络请求对象,包括:

检索所述应用程序中的网络请求对象;

当所述网络请求对象属于所述第三方库时,确定所述网络请求对象为所述第一网络请求对象。

可选的,当确定所述第一网络请求对象不属于预设类时,所述方法还包括:

获取第一网络限制条件;

根据所述第一网络限制条件处理所述第一网络请求。

可选的,所述方法还包括:

检查所述应用程序的代码区中的第二网络请求对象;

当存在所述第二网络请求对象对应的第二网络请求时,根据第二网络限制条件处理所述第二网络请求。

可选的,所述检查应用程序的第三方库中的第一网络请求对象之前,所述方法还包括:

判断预设检查条件是否被触发,所述预设检查条件包括以下至少一项:所述第三方库被使用及网络流量异常;

当所述预设检查条件被触发时,执行所述检查应用程序的第三方库中的第一网络请求对象的步骤。

可选的,所述禁用所述第一网络请求,包括:

在所述应用程序的后台和/或所述应用程序的生命周期中,调用停止使用所述第一网络请求的方法。

第二方面,本申请实施例提供了一种应用程序检查装置,包括:

检查模块,用于检查应用程序的第三方库中的第一网络请求对象;

获取模块,用于当确定所述第一网络请求对象属于预设类时,获取所述第一网络请求对象对应的第一网络请求;

禁用模块,用于禁用所述第一网络请求。

第三方面,本申请实施例提供了一种客户端,包括上述实施例中的应用程序检查装置。

第四方面,本申请实施例提供了一种电子设备,包括:处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;

所述存储器,用于存放计算机程序;

所述处理器,用于执行计算机程序时,实现上述方法步骤。

第五方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述方法步骤。

本申请实施例提供的上述技术方案与现有技术相比具有如下优点:

通过检查应用程序第三方库中是否存在非法的网络请求对象,如果存在,则后续禁用该对象所对应的网络请求。这样,对于流量异常的应用程序,不是直接将其关闭,而是仅禁用其中未经允许的网络请求,在降低网络流量消耗的同时,保证应用程序网络相关的正常功能业务的使用。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。

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

图1为本申请实施例提供的一种应用程序检查方法的流程图;

图2为本申请另一实施例提供的一种应用程序检查方法的流程图;

图3为本申请另一实施例提供的一种应用程序检查方法的流程图;

图4为本申请实施例提供的一种应用程序检查装置的框图;

图5为本申请实施例提供的一种电子设备的结构示意图。

具体实施方式

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

本实施例中,对应用程序的检查是基于代码层面的检查,能够实现对应用程序更加精准的控制。

本申请实施例对应用程序中第三方库中网络请求对象进行检索,一旦发现非法的网络请求对象,则禁用该网络请求对应的网络请求。从而实现对应用程序网络流量的合理监控,避免影响应用程序网络相关的正常功能及业务的使用。

下面首先对本发明实施例所提供的一种应用程序检查方法进行介绍。

图1为本申请实施例提供的一种应用程序检查方法的流程图。如图1所示,该方法包括以下步骤:

步骤s11,检查应用程序的第三方库中的第一网络请求对象。

可选的,第三方库可以包括除本地类库、系统类库以外的,需要安装才能调用的类库;也可以将所有未经认证、存在安全风险的类库作为第三方库;或者也可以由开发人员预先设定第三方库所包括的类库。

本实施例中的网络请求对象,指的是网络请求相关的实例,存储有用于网络请求的成员变量、常量等等。

步骤s12,当确定第一网络请求对象属于预设类时,获取第一网络请求对象对应的第一网络请求。

其中,该预设类中可以包括网络请求相关的变量、常量,如okhttpclient,retrofit,httpurlconnection等相关实例数据。若第一网络请求对象属于预设类,则该第三方库存在非法的未经允许的连接网络情况。

步骤s13,禁用第一网络请求。

可选的,禁用第一网络请求可以包括在应用程序的后台和/或应用程序的生命周期中,调用停止使用第一网络请求的方法。

本实施例中,通过检查应用程序第三方库中是否存在非法的网络请求对象,如果存在,则后续禁用该对象所对应的网络请求。这样,对于流量异常的应用程序,不是直接将其关闭,而是仅禁用其中未经允许的网络请求,在降低网络流量消耗的同时,保证应用程序网络相关的正常功能业务的使用。

另外,本实施例中,基于代码检查应用程序第三方库中网络请求相关的对象,在基于该网络请求对象禁用对应的网络请求,使得对应用程序的网络控制更加精准、有效。

图2为本申请另一实施例提供的一种应用程序检查方法的流程图,如图2所示,当确定第一网络请求对象不属于预设类,即网络请求对象为合法时,该方法还包括:

步骤s21,获取第一网络限制条件;

步骤s22,根据第一网络限制条件处理第一网络请求。

其中,该第一网络限制条件可以包括:对网络请求次数的限制和/或对上传传输数据量的限制。

例如,对网络请求次数的限制可以为单位时间内所允许的请求次数上限,超过该请求次数上限,则对网络请求进行排队等待处理。

本实施例中,对于第三方库中合法的、经过允许的网络请求,也需对其进行限制,控制网络请求的次数、传输的数据量等等。这样,进一步控制第三方库对于使用网络,降低其对网络流量的消耗。

对于检查到的第三方库中网络请求对象,可以根据其是否合法确定是否对其处理,也可以直接禁用掉所有第三方库中的网络请求。

可选的,上述步骤s11可以存在以下两种实现方式:

(1)直接从第三方库中检索网络请求对象。

上述步骤s11包括:确定应用程序对应的第三方库;从第三方库中检索第一网络请求对象。

(2)检索应用程序的所有网络请求对象,选择其中第三方库对应的网络请求对象。

上述步骤s11包括:检索应用程序中的网络请求对象;当网络请求对象属于第三方库时,确定网络请求对象为第一网络请求对象。

在另一实施例中,应用程序中除第三方库外,代码区也存在网络请求,这些网络请求对应应用程序正常的网络相关功能和业务,因此,对于这些网络请求,应正常处理。

该方法还包括:检查应用程序的代码区中的第二网络请求对象;当存在第二网络请求对象对应的第二网络请求时,根据第二网络限制条件处理第二网络请求。

其中,第二网络限制条件的内容与第一网络显示条件类似,可以设置为相同或不同,也可根据需要设置两个限制条件的具体参数不同。

本实施例中,对于正常合法的网络请求,也对其进行限制,控制网络请求的次数、传输的数据量等等。这样,进一步控制应用程序对于使用网络,降低其对网络流量的消耗。

本实施例可以应用在应用程序开发阶段,也可应用于应用程序的实际使用阶段。在不同阶段使用本实施例的方法,触发检查的条件不同。

在上述步骤s11之前,该方法还包括:判断预设检查条件是否被触发,预设检查条件包括以下至少一项:第三方库被使用及网络流量异常;当该预设检查条件被触发时,执行步骤s11。

其中,在应用程序开发阶段,预设检查条件为第三方库被使用,即当监测到开发者在代码中调用第三方库时,触发上述对应用程序的检查。在应用程序的实际使用阶段,预设检查条件可以为网络流量异常,网络流量异常可以包括但不限于以下任一情况:

应用程序的网络流量超过阈值;

监测到第三方库对应的后台接口使用网络流量;

智能终端设备总的网络流量超过阈值。

在应用程序的整个生命周期中,都可通过上述实施例的方法控制其对网络的使用情况,禁用应用程序第三方库的非法网络请求,对应用程序合法正常网络请求进行限制处理。从而,有效控制应用程序对网络流量的消耗。

另外,除基于预设检查条件的触发外,对于应用程序的检查也可以是周期性的,即每间隔一定时间就对应用程序进行上述检查。或者,当基于上述预设检查条件触发对应用程序检查后,如果发现第三方库中的非法网络请求对象,对其禁用后,再次对整个应用程序进行检查,防止漏检,直到最后未发现非法网络请求对象为止。

下面对上述应用程序检查方法的流程进行详细说明。

图3为本申请另一实施例提供的一种应用程序检查方法的流程图。如图3所示,该方法还包括以下步骤:

步骤s31,监测第三方库使用情况及网络流量情况;

步骤s32,判断预设检查条件是否被触发,如果是,执行步骤s33,如果否,返回步骤s31;

步骤s33,检索应用程序中的网络请求对象;

步骤s34,判断网络请求对象是否属于第三方库;如果是,执行步骤s35,如果否,执行步骤s37;

步骤s35,判断网络请求对象是否属于预设类;如果是,执行步骤s36,如果否,执行步骤s37;

步骤s36,禁用该网络请求对象对应的网络请求;

步骤s37,根据网络限制条件处理该网络请求对象对应的网络请求。

在上述实例中,当检查到非法的网络请求对象,或无网络连接需求时,不初始化和执行网络请求,仅对合法的网络请求对象,初始化其对应的网络请求,对其进行处理。

这样,对于应用程序内部各个网络请求,分别进行判断是否允许其访问网络,禁用第三方库中非法网络请求,而不是以应用程序为一个整体对其关闭禁用,这样,在降低网络流量消耗的同时,保证应用程序网络相关的正常功能业务的使用。

下述为本申请装置实施例,可以用于执行本申请方法实施例。

图4为本申请实施例提供的一种应用程序检查装置的框图,该装置可以通过软件、硬件或者两者的结合实现成为电子设备的部分或者全部。如图4所示,该应用程序检查装置包括:

检查模块41,用于检查应用程序的第三方库中的第一网络请求对象;

获取模块42,用于当确定所述第一网络请求对象属于预设类时,获取所述第一网络请求对象对应的第一网络请求;

禁用模块43,用于禁用所述第一网络请求。

可选的,该装置实施例还包括用于实现上述方法实施例的多个模块。

本实施例还提供一种客户端,包括上述应用程序检查装置,用以实现上述方法实施例。该客户端可以位于智能终端设备上。

本申请实施例还提供一种电子设备,如图5所示,电子设备可以包括:处理器1501、通信接口1502、存储器1503和通信总线1504,其中,处理器1501,通信接口1502,存储器1503通过通信总线1504完成相互间的通信。

存储器1503,用于存放计算机程序;

处理器1501,用于执行存储器1503上所存放的计算机程序时,实现以下上述方法实施例的步骤。

上述电子设备提到的通信总线可以是外设部件互连标准(peripheralcomponentinterconnect,pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,eisa)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

通信接口用于上述电子设备与其他设备之间的通信。

存储器可以包括随机存取存储器(randomaccessmemory,ram),也可以包括非易失性存储器(non-volatilememory,nvm),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。

上述的处理器可以是通用处理器,包括中央处理器(centralprocessingunit,cpu)、网络处理器(networkprocessor,np)等;还可以是数字信号处理器(digitalsignalprocessing,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

本申请还提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以下上述方法实施例的步骤。

需要说明的是,对于上述装置、电子设备及计算机可读存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

进一步需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。


技术特征:

1.一种应用程序检查方法,其特征在于,包括:

检查应用程序的第三方库中的第一网络请求对象;

当确定所述第一网络请求对象属于预设类时,获取所述第一网络请求对象对应的第一网络请求;

禁用所述第一网络请求。

2.根据权利要求1所述的方法,其特征在于,所述检查应用程序的第三方库中的第一网络请求对象,包括:

确定所述应用程序对应的第三方库;

从所述第三方库中检索所述第一网络请求对象;

或,

所述检查应用程序的第三方库中的第一网络请求对象,包括:

检索所述应用程序中的网络请求对象;

当所述网络请求对象属于所述第三方库时,确定所述网络请求对象为所述第一网络请求对象。

3.根据权利要求1所述的方法,其特征在于,当确定所述第一网络请求对象不属于所述预设类时,所述方法还包括:

获取第一网络限制条件;

根据所述第一网络限制条件处理所述第一网络请求。

4.根据权利要求1所述的方法,其特征在于,所述方法还包括:

检查所述应用程序的代码区中的第二网络请求对象;

当存在所述第二网络请求对象对应的第二网络请求时,根据第二网络限制条件处理所述第二网络请求。

5.根据权利要求1所述的方法,其特征在于,所述检查应用程序的第三方库中的第一网络请求对象之前,所述方法还包括:

判断预设检查条件是否被触发,所述预设检查条件包括以下至少一项:所述第三方库被使用及网络流量异常;

当所述预设检查条件被触发时,执行所述检查应用程序的第三方库中的第一网络请求对象的步骤。

6.根据权利要求1所述的方法,其特征在于,所述禁用所述第一网络请求,包括:

在所述应用程序的后台和/或所述应用程序的生命周期中,调用停止使用所述第一网络请求的方法。

7.一种应用程序检查装置,其特征在于,包括:

检查模块,用于检查应用程序的第三方库中的第一网络请求对象;

获取模块,用于当确定所述第一网络请求对象属于预设类时,获取所述第一网络请求对象对应的第一网络请求;

禁用模块,用于禁用所述第一网络请求。

8.一种客户端,其特征在于,包括如权利要求7所述的装置。

9.一种电子设备,其特征在于,包括:处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;

所述存储器,用于存放计算机程序;

所述处理器,用于执行所述计算机程序时,实现权利要求1-6任一项所述的方法步骤。

10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1-6任一项所述的方法步骤。

技术总结
本申请涉及一种应用程序检查方法、装置、电子设备及存储介质,该方法包括:检查应用程序的第三方库中的第一网络请求对象;当确定所述第一网络请求对象属于预设类时,获取所述第一网络请求对象对应的第一网络请求;禁用所述第一网络请求。该技术方案通过检查应用程序第三方库中是否存在非法的网络请求对象,如果存在,则后续禁用该对象所对应的网络请求。这样,对于流量异常的应用程序,不是直接将其关闭,而是仅禁用其中未经允许的网络请求,在降低网络流量消耗的同时,保证应用程序网络相关的正常功能业务的使用。

技术研发人员:韦才金;马颖江;张轶
受保护的技术使用者:珠海格力电器股份有限公司
技术研发日:2019.12.30
技术公布日:2020.06.05

转载请注明原文地址: https://bbs.8miu.com/read-52623.html

最新回复(0)