Web应用漏洞的检测方法及相关装置与流程

文档序号:24617847发布日期:2021-04-09 20:21阅读:54来源:国知局
Web应用漏洞的检测方法及相关装置与流程

本申请涉及漏洞检测处理领域,尤其涉及web应用漏洞的检测方法及相关装置。



背景技术:

随着互联网、5g和云等技术的发展,以车联网、物联网形成的万物互联会成为未来的主流,万物互联则会出现大量的web应用,将会出现不同的数据被收集、存储,使得处理数据的web应用的安全(是否存在漏洞)热度将再次升高。

目前,可以在运行web应用的web中间件中,开发web应用的漏洞检测逻辑,但是,具有开发成本高的问题。



技术实现要素:

本申请提供了web应用中漏洞的检测方法及相关装置,目的在于提供web应用的漏洞检测方案。

为了实现上述目的,本申请提供了以下技术方案:

本申请提供了一种web应用漏洞的检测方法,应用于服务端,包括:

接收http请求的方法集合;所述http请求的方法集合指:web应用响应所述http请求的过程中触发hook点的方法中的目标方法构成的集合;所述目标方法指:从source点的方法开始,并且,上一个方法的输出数据为下一个方法的输入数据的方法;

确定所述http请求的方法集合的方法调用图;

在所述方法调用图中存在满足预设条件的调用链的情况下,确定所述web应用存在漏洞;所述预设条件包括:包括source点指示的任一方法和sink点指示的任一方法,并且,所述source点指示的任一方法和所述sink点指示的任一方法之间未经过filter点指示的任一方法。

可选的,所述预设条件的获取方式包括:读取事先配置的预设条件,和/或,从外部接收预设条件。

可选的,确定所述http请求的方法集合的方法调用图,包括:

对所述方法集合中的方法按照调用先后顺序进行排序,得到排序后的方法集合;

从所述排序后的方法集合中,确定从触发source点的方法到触发sink点的方法的全部路径;

在任一路径中全部相邻方法满足前一方法的输出数据是后一方法的输入数据的情况下,将该路径指示的方法顺序,作为方法调用链;

依据所述方法调用链,生成所述http请求的方法调用图。

本申请还提供了一种web应用漏洞的检测方法,应用于web中间件,包括:

加载预设hook点;所述预设hook点包括:source点、propageta点、filter点和sink点;

在中间件和javaweb应用的代码中所述预设hook点指示的方法所在位置,插入预设的污点采集代码;

在所述web应用程序代码的用户类中非预设hook点指示的方法所在位置,插入所述污点采集代码;

在启动web应用之后,依据所述web应用响应http请求的过程中所述污点采集代码采集的污点数据,确定所述web应用响应所述http请求的过程中触发hook点的方法中的目标方法,得到所述http请求的方法集合;所述目标方法指:从触发source点的方法开始,并且,上一个方法的输出数据为下一个方法的输入数据的方法;

将所述http请求的方法集合,发送给服务端。

本申请还提供了一种web应用漏洞的检测装置,应用于服务端,包括:

接收模块,用于接收http请求的方法集合;所述http请求的方法集合指:web应用响应所述http请求的过程中触发hook点的方法中的目标方法构成的集合;所述目标方法指:从source点的方法开始,并且,上一个方法的输出数据为下一个方法的输入数据的方法;

第一确定模块,用于确定所述http请求的方法集合的方法调用图;

第二确定模块,用于在所述方法调用图中存在满足预设条件的调用链的情况下,确定所述web应用存在漏洞;所述预设条件包括:包括source点指示的任一方法和sink点指示的任一方法,并且,所述source点指示的任一方法和所述sink点指示的任一方法之间未经过filter点指示的任一方法。

可选的,所述预设条件的获取方式包括:读取事先配置的预设条件,和/或,从外部接收预设条件。

可选的,所述第一确定模块,用于确定所述http请求的方法集合的方法调用图,包括:

所述第一确定模块,具体用于对所述方法集合中的方法按照调用先后顺序进行排序,得到排序后的方法集合;从所述排序后的方法集合中,确定从触发source点的方法到触发sink点的方法的全部路径;在任一路径中全部相邻方法满足前一方法的输出数据是后一方法的输入数据的情况下,将该路径指示的方法顺序,作为方法调用链;依据所述方法调用链,生成所述http请求的方法调用图。

本申请还提供了一种web应用漏洞的检测装置,应用于web中间件,包括:

加载模块,用于加载预设hook点;所述预设hook点包括:source点、propageta点、filter点和sink点;

第一插入模块,用于在中间件和javaweb应用的代码中所述预设hook点指示的方法所在位置,插入预设的污点采集代码;

第二插入模块,用于在所述web应用程序代码的用户类中非预设hook点指示的方法所在位置,插入所述污点采集代码;

第三确定模块,用于在启动web应用之后,依据所述web应用响应http请求的过程中所述污点采集代码采集的污点数据,确定所述web应用响应所述http请求的过程中触发hook点的方法中的目标方法,得到所述http请求的方法集合;所述目标方法指:从触发source点的方法开始,并且,上一个方法的输出数据为下一个方法的输入数据的方法;

发送模块,用于将所述http请求的方法集合,发送给服务端。

本申请还提供了一种存储介质,所述存储介质包括存储的程序,其中,所述程序执行上述服务端执行的任一web应用漏洞的检测方法。

本申请还提供了一种设备,所述设备包括至少一个处理器、以及与所述处理器连接的至少一个存储器、总线;其中,所述处理器、所述存储器通过所述总线完成相互间的通信;所述处理器用于调用所述存储器中的程序指令,以执行上述服务端执行的任一web应用漏洞的检测方法。

本申请所述的web应用的漏洞检测方法及相关装置,web中间件只需提供http请求的方法集合,由服务端基于http请求的方法集合,确定http请求的方法集合的方法调用图,并依据方法调用图,判断web应用是否存在漏洞,从而,实现了对web应用的漏洞检测。

此外,在本申请中,漏洞检测是在服务端进行的,由于对于不同语言编写的web应用的漏洞检测,服务端对方法集合的漏洞检测逻辑是相同的,因此,本申请只需在服务端开发一种语言编写的漏洞检测逻辑,即可实现针对不同语言开发的web应用的漏洞检测,从而,避免了不同语言开发的web应用需要采用不同语言开发漏洞检测逻辑,导致的开发成本高的问题。

附图说明

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

图1为本申请实施例公开的一种web应用漏洞的检测方法的流程图;

图2为本申请实施例公开的确定http请求的方法集合的过程示意图;

图3为本申请实施例公开的方法调用图的示例图;

图4为本申请实施例公开的一种web应用漏洞的检测装置的结构示意图;

图5为本申请实施例公开的又一种web应用漏洞的检测装置的结构示意图;

图6为本申请实施例公开的一种设备的结构示意图。

具体实施方式

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

图1为本申请实施例提供的一种web应用漏洞的检测方法,可以包括以下步骤:

s101、web中间件加载预设hook点。

在本实施例中,web中间件指javaweb中间件,javaweb中间件在java虚拟机(javavirtualmachine,jvm)启动时,加载提前定义的hook点,即加载预设hook点。在本实施例中,预设的hook点可以包括:source点、propageta点、filter点和sink点。

其中,source点指:web应用和中间件中,用于获取外部数据的方法。具体的,source点指示的方法可以包括多种,即只要是获取外部数据的方法即可。

propageta点指:web应用和中间件中,对数据进行处理的方法。具体的,propageta点指示的方法可以包括多种,即只要是对数据进行处理的方法即可。

filter点指:web应用和中间件中,对数据进行过滤和检测的方法。具体的,filter点指示的方法可以包括多种,即只要是对数据进行过滤和检测的方法即可。

sink点指:web应用和中间件中,触发危险操作的方法。具体的,sink点指示的方法可以包括多种,例如,执行操作系统命令的方法,执行sql查询的方法等。

需要说明的是,source点、propageta点、filter点和sink点的定义中,web应用指javaweb应用程序。

在本申请实施例中,javaweb应用程序包括:用户编写的应用程序和java框架。

s102、web中间件在web应用启动的情况下,在中间件和javaweb应用的代码中预设hook点指示的方法所在位置,插入预设的污点采集代码。

在本实施例中,由于预设hook点指示的方法可以包括多种,在本步骤中,在中间件和javaweb应用的代码中预设hook点指示的方法所在位置,插入预设的污点采集代码,表示的含义为:在中间件和javaweb应用的代码中,只要出现预设hook指示的一种方法,就在该方法所在位置插入污点采集代码。

在本步骤中,污点采集代码用于采集污点数据。其中,污点数据指:web应用程序中,所有来自外部输入的数据均属于污点。例如,http请求头、请求体、文件和消息队列等。

s103、web中间件识别web应用程序代码中的用户类。

在本步骤中,识别web应用程序代码中的用户类。

s104、web中间件在web应用程序代码的用户类中非预设hook点指示的方法所在位置,插入污点采集代码。

在本实施例中,web应用程序代码中的用户类可能包括很多方法。其中,非预设hook点指用户类包括的方法中,除预设hook点指示的方法之外的方法。

在本步骤中,在用户类中非预设hook点指示的方法所在位置处,插入污点采集代码。即在用户类中只要出现非预设hook点指示的一种方法,就在该方法所在位置处,插入污点采集代码。其中,污点采集代码用于采集污点数据。

s105、web中间件依据web应用响应http请求的过程中污点采集代码采集的污点数据,确定web应用响应http请求的过程中触发hook点的方法中的目标方法,得到http请求的方法集合。

在实际中,如果是多个http请求,则分别确定每个http请求的方法集合,其中,确定不同http请求的方法集合的原理相同。为了描述方便,在本实施例中,以web应用响应一个http请求的过程为例,介绍确定http请求的方法集合的过程。

在本实施例中,web应用程序响应请求的过程中,会执行多个方法,其中,执行的任一方法为某个hook点指示的任一方法的情况下,则将该方法称为触发该hook点的方法。因此,在响应请求的过程中会出现多个触发hook点的方法。

将响应请求过程中,通过将每个当前触发hook点的方法执行图2对应的实施例中的步骤,以得到http请求的方法集合。

在本实施例中,目标方法指:从source点指示的方法开始,并且,上一个方法的输出数据为下一个方法的输入数据的方法。

例如,在响应http请求的过程中,执行的第一个触发source点的方法的输出数据为第二个触发hook的方法的输入数据,第二个触发hook的方法的输出数据第三个触发hook的方法的输入数据,依次类推,将依次串联成链的方法,作为http请求的方法集合中的方法。在实际中,在响应http请求的过程中,可能会出现多条依次串联成链的方法,本实施例将串联成链的全部方法构成的集合,称为http请求的方法集合。

s106、web中间件将http请求的方法集合发送给服务端。

s107、服务端确定http请求的方法集合的方法调用图。

在本步骤中,确定http请求的方法集合对应的方法调用图的过程,具体可以包括以下步骤a1~步骤a4:

a1、对方法集合中的方法按照调用先后顺序进行排序,得到排序后的方法集合。

在本实施例中,对于http请求的方法集合,虽然该方法集合中存储的是多个从触发source点的方法开始,并且,上一个方法的输出数据为下一个方法的输入数据的方法。但是,在实际中,由于响应http请求的过程是多线程处理的,因此,检测出作为http请求的方法集合中的方法是乱序的,即不是按照调用先后顺序保存的,因此,需要执行本步骤的操作。

在本实施例中,方法集合中的每个方法都存在用于表征调用顺序的编号。其中,编号越小,表示方法的调用顺序越靠前。因此,在本步骤中,可以按照调用编号的大小,对方法集合中的方法进行排序。为了描述方便,将本步骤排序得到的方法集合,称为排序后的方法集合。

a2、从排序后的方法集合中,确定从触发source点的方法到触发sink点的方法的全部路径。

作为示例,在本步骤中,可以利用图的深度优先算法和广度优先算法搜索,从触发source点的方法到触发sink点的方法的全部路径。

a3、分别判断每个路径中全部相邻方法是否满足前一方法的输出数据是否为后一方法的输入数据,如果是,则执行步骤a4。

在本步骤中,分别对每个路径中的全部相邻方法进行判断。以任一相邻方法为例,判断该相邻方法是否满足前一方法的输出数据是后一方法的输入数据。具体的,可以采用值匹配算法进行判断,其中,判断方式可以包括:针对java基础类型,直接判断内存地址是否相同。针对java中的集合类型,先判断内存地址是否相同,然后拆分集合为单独数据节点,再次进行值匹配算法。针对java中自定义的引用类型,直接调用equals方法判断是否相同。

a4、将该路径指示的方法顺序,作为方法调用链。

在任一路径中全部相邻方法都满足前一方法的输出数据是后一方法的输入数据的情况下,执行本步骤的操作。

在本步骤中,将该路径指示的方法顺序,作为一条方法调用链。

在本步骤中,可能存在多条方法调用链。

a5、依据方法调用链,生成方法调用图。

在本步骤中,如果存在多条方法调用链,则将该多条方法调用链,生成一个方法调用图。

在本实施例中,为了直观展示方法调用链与方法调用图之间的关系,给出了图3所示的图。图3中每个椭圆中的内容都表示一种方法,即“getparameter”表示一种方法、“decode”表示一种方法、“put”表示一种方法以及“exec”表示一种方法。其中,不同方法之间的箭头指向表示表示方法调用方向。每个箭头旁边的内容“id”表示污点数据。例如,“id”是“getparameter”的输出数据。

在图3中,从“getparameter”到“decode”到“put”,是一条方法调用链。从“getparameter”到“decode”到“exec”是一条方法调用链。这两条方法调用链通过“decode”连接在一起,形成如图3所示的方法调用图。

s108、服务端在方法调用图中存在满足预设条件的调用链的情况下,确定web应用存在漏洞。

在本实施例中,预设条件可以包括:包括source点指示的任一方法和sink点指示的任一方法,并且,该source点指示的任一方法和该sink点指示的任一方法之间未经过filter点指示的任一方法。

在本实施例中,source点指示的方法可能包括多种,例如,a1、a2和a3。sink点指示的方法也可能包括多种,例如,b1、b2、b3和b4。filter点指示的方法也可能包括多种,例如,c1、c2、c3、c4和c5。

在本步骤中,预设条件指示的检测策略可以是:包括a1和b1,但是a1和b1之间不包括c1。预设条件指示的检测策略还可以是:包括a1和b1,但是a1和b1之间不包括c2。当然,预设条件指示的检索策略还可以为其他内容,只要包括source点指示的任一方法和sink点指示的任一方法,并且,该source点指示的任一方法和该sink点指示的任一方法之间未经过filter点指示的任一方法即可。

可选的,在本实施例中,预设条件指示的检测策略可以是事先配置在服务端的,由于检测策略是由人工想出来的,因此,事先配置在服务端的检测策略是有限的,并且,可能是不全面的,即可能是不能适用于全部场景下的漏洞检测。

为了实现适用于全部场景下的漏洞检测,在本实施例中,预设条件指示检测策略,除了事先配置外,还可以通过从外部接收得到。其中,接收到的预设条件的检测策略可以由用户确定。

图2为本申请实施例提供的确定http请求的方法集合的过程,可以包括以下步骤:

s201、在web应用程序响应请求的过程中,加载当前触发hook点的方法。

在本步骤中,加载当前触发hook点的方法。

s202、判断当前触发的hook点是否用于表征请求响应结束的hook点,如果否,则执行s203,如果是,则执行s211。

s203、判断当前是否接收到http请求或已进入http请求,如果是,则执行s204,如果否,则执行s205。

s204、判断是否为接收到http请求,如果是,则执行s205,如果否,则执行s206。

s205、标记进入http请求。

执行完本步骤后,执行步骤s206。

s206、判断当前触发hook点的方法是否为source点指示的方法,如果是,则执行s207,如果否,则执行s209。

s207、将当前触发hook点的方法的数据中的输出数据作为污点数据,进行保存,并将当前触发hook点的方法,作为http请求方法集合中的一个方法进行保存。

s208、标记进入source点。

执行完本步骤后,返回执行步骤s201。

s209、判断当前触发hook的方法的数据输入点是否已作为污点数据进行保存,如果是,则执行s210,如果否,则执行s201。

在本步骤中,如果当前触发hook的方法的数据输入点已作为污点数据进行保存,说明当前触发hook的方法是从触发source点的方法开始,上一方法的输出数据是下一方法的数据输入的方法中的一个方法,即从触发source点的方法开始的依次触发的方法链中的一个方法,是需要作为http请求的方法集合中的一个方法。

如果当前触发hook的方法的数据输入点未作为污点数据进行保存,说明当前触发hook点的方法,不是http请求的方法集合中的一个方法,因此,执行步骤s201,即等待下一个触发hook点的方法。

s210、将当前触发hook点的方法,作为http请求方法集合中的一个方法进行保存。

执行完本步骤后,执行步骤s201,即等待下一个触发hook点的方法。

s211、将http请求的方法集合发送至服务端。

图4为本申请实施例提供的一种web应用漏洞的检测装置,可以包括:应用于服务端,可以包括:接收模块401、第一确定模块402和第二确定模块403,其中,

接收模块401,用于接收http请求的方法集合;所述http请求的方法集合指:web应用响应所述http请求的过程中触发hook点的方法中的目标方法构成的集合;所述目标方法指:从source点的方法开始,并且,上一个方法的输出数据为下一个方法的输入数据的方法;

第一确定模块402,用于确定所述http请求的方法集合的方法调用图;

第二确定模块403,用于在所述方法调用图中存在满足预设条件的调用链的情况下,确定所述web应用存在漏洞;所述预设条件包括:包括source点指示的任一方法和sink点指示的任一方法,并且,所述source点指示的任一方法和所述sink点指示的任一方法之间未经过filter点指示的任一方法。

可选的,所述预设条件的获取方式包括:读取事先配置的预设条件,和/或,从外部接收预设条件。

可选的,所述第一确定模块402,用于确定所述http请求的方法集合的方法调用图,包括:

所述第一确定模块402,具体用于对所述方法集合中的方法按照调用先后顺序进行排序,得到排序后的方法集合;从所述排序后的方法集合中,确定从触发source点的方法到触发sink点的方法的全部路径;在任一路径中全部相邻方法满足前一方法的输出数据是后一方法的输入数据的情况下,将该路径指示的方法顺序,作为方法调用链;依据所述方法调用链,生成所述http请求的方法调用图。

web应用漏洞的检测装置包括处理器和存储器,上述接收模块401、第一确定模块402和第二确定模块403等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。

处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来提供web应用的漏洞检测方案。

本发明实施例提供了一种存储介质,其上存储有程序,该程序被处理器执行时实现所述web应用的漏洞检测方法。

本发明实施例提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行所述web应用的漏洞检测方法。

图5为本申请还提供了又一种web应用漏洞的检测装置,应用于web中间件,可以包括:加载模块501、第一插入模块502、第二插入模块503、第三确定模块504和发送模块505,其中,

加载模块501,用于加载预设hook点;所述预设hook点包括:source点、propageta点、filter点和sink点;

第一插入模块502,用于在中间件和javaweb应用的代码中所述预设hook点指示的方法所在位置,插入预设的污点采集代码;

第二插入模块503,用于在所述web应用程序代码的用户类中非预设hook点指示的方法所在位置,插入所述污点采集代码;

第三确定模块504,用于在启动web应用之后,依据所述web应用响应http请求的过程中所述污点采集代码采集的污点数据,确定所述web应用响应所述http请求的过程中触发hook点的方法中的目标方法,得到所述http请求的方法集合;所述目标方法指:从触发source点的方法开始,并且,上一个方法的输出数据为下一个方法的输入数据的方法;

发送模块505,用于将所述http请求的方法集合,发送给服务端。

web应用漏洞的检测装置包括处理器和存储器,上述加载模块501、第一插入模块502、第二插入模块503、第三确定模块504和发送模块505等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。

处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来提供web应用的漏洞检测方案。

本发明实施例提供了一种存储介质,其上存储有程序,该程序被处理器执行时实现所述web应用的漏洞检测方法。

本发明实施例提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行所述web应用的漏洞检测方法。

本发明实施例提供了一种设备,如图6所示,设备包括至少一个处理器、以及与处理器连接的至少一个存储器、总线;其中,处理器、存储器通过总线完成相互间的通信;处理器用于调用存储器中的程序指令,以执行上述的同行人员的识别方法。本文中的设备可以是服务器、pc、pad、手机等。

本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序:

接收http请求的方法集合;所述http请求的方法集合指:web应用响应所述http请求的过程中触发hook点的方法中的目标方法构成的集合;所述目标方法指:从source点的方法开始,并且,上一个方法的输出数据为下一个方法的输入数据的方法;

确定所述http请求的方法集合的方法调用图;

在所述方法调用图中存在满足预设条件的调用链的情况下,确定所述web应用存在漏洞;所述预设条件包括:包括source点指示的任一方法和sink点指示的任一方法,并且,所述source点指示的任一方法和所述sink点指示的任一方法之间未经过filter点指示的任一方法。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

在一个典型的配置中,设备包括一个或多个处理器(cpu)、存储器和总线。设备还可以包括输入/输出接口、网络接口等。

存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram),存储器包括至少一个存储芯片。存储器是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。

本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

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

本说明书的各个实施例中记载的特征可以相互替换或者组合,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。

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

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