基于大数据的业务逻辑学习、防护方法及学习、防护装置转让专利

申请号 : CN201810385971.0

文献号 : CN108683716B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 黄梅芬

申请人 : 网宿科技股份有限公司

摘要 :

本发明公开了一种基于大数据的业务逻辑学习、防护方法及学习、防护装置,其中,所述学习方法包括:接收请求方发来的网络请求,并识别所述网络请求的当前请求标识以及解析所述网络请求的流程信息;从所述流程信息中提取引用请求标识,并判断在流程走向表中是否存在由所述引用请求标识指向所述当前请求标识的走向,并基于判断结果更新所述流程走向表;针对所述网络请求下发跟踪代码,所述跟踪代码中包含所述当前请求标识以及下发所述跟踪代码的时间戳。本申请提供的技术方案,能够提高基于大数据的业务逻辑防护效率,可以适应各种各样的业务逻辑场景,能灵活的适应各种业务逻辑需求的变更。

权利要求 :

1.一种基于大数据的业务逻辑学习方法,其特征在于,所述方法包括:

接收请求方发来的网络请求,并识别所述网络请求的当前请求标识以及解析所述网络请求的流程信息;

从所述流程信息中提取引用请求标识,并判断在流程走向表中是否存在由所述引用请求标识指向所述当前请求标识的走向,并基于判断结果更新所述流程走向表;

在响应所述网络请求时,针对所述网络请求下发跟踪代码,所述跟踪代码中包含所述当前请求标识以及下发所述跟踪代码的时间戳;其中,若在所述网络请求的基础上再次发起新的网络请求时,所述跟踪代码将所述当前请求标识和所述时间戳添加于所述新的网络请求的流程信息中。

2.根据权利要求1所述的方法,其特征在于,识别所述网络请求的当前请求标识包括:将所述网络请求格式化为对应参数类型的格式化请求,为所述格式化请求分配唯一标识,并将所述唯一标识作为所述网络请求的当前请求标识。

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

若所述网络请求中不存在流程信息,在响应所述网络请求时,针对所述网络请求下发跟踪代码,所述跟踪代码中包含所述当前请求标识以及下发所述跟踪代码的时间戳;其中,若在所述网络请求的基础上再次发起新的网络请求时,所述跟踪代码将所述当前请求标识和所述时间戳添加于所述新的网络请求的流程信息中。

4.根据权利要求1所述的方法,其特征在于,基于判断结果更新所述流程走向表包括:若在所述流程走向表中存在由所述引用请求标识指向所述当前请求标识的走向,将所述走向的流量总数增加1;

读取所述流程走向表中记录的所述当前请求标识和所述引用请求标识之间的时间差范围,并计算接收到所述网络请求的当前时间与所述流程信息中记载的所述引用请求标识的时间戳之间的时间差;

判断计算的所述时间差是否处于所述时间差范围内,并基于判断结果,对所述时间差范围进行更新。

5.根据权利要求1所述的方法,其特征在于,基于判断结果更新所述流程走向表包括:若在所述流程走向表中不存在由所述引用请求标识指向所述当前请求标识的走向,在所述流程走向表中创建所述走向,并将所述走向的流量总数置为1,以及将接收到所述网络请求的当前时间与所述流程信息中记载的所述引用请求标识的时间戳之间的时间差记录为所述走向的时间差。

6.根据权利要求1所述的方法,其特征在于,所述跟踪代码将所述当前请求标识和所述时间戳添加于所述新的网络请求的流程信息中包括以下至少一种:在所述网络请求指向的页面加载之前,遍历文档中的指定标签,并在所述指定标签对应的网络请求中添加所述当前请求标识和所述时间戳;

或者

钩挂用于实现页面跳转和动态发起请求的函数,并在所述用于实现页面跳转和动态发起请求的函数对应的网络请求中添加所述当前请求标识和所述时间戳;

或者

钩挂用于实现动态添加页面的函数,并在所述用于实现动态添加页面的函数添加指定标签时,在所述指定标签对应的网络请求中添加所述当前请求标识和所述时间戳。

7.根据权利要求1所述的方法,其特征在于,在针对所述网络请求下发跟踪代码之后,所述方法还包括:根据所述流程走向表中记录的各条走向,统计各个请求标识的出入流量信息,并将出入流量信息符合指定条件的请求标识作为起点请求标识,并统计所述起点请求标识对应的请求流程。

8.一种基于大数据的业务逻辑学习装置,其特征在于,所述装置包括存储器和处理器,所述存储器中存储有计算机程序,所述计算机程序被所述处理器执行时,实现以下步骤:接收请求方发来的网络请求,并识别所述网络请求的当前请求标识以及解析所述网络请求的流程信息;

从所述流程信息中提取引用请求标识,并判断在流程走向表中是否存在由所述引用请求标识指向所述当前请求标识的走向,并基于判断结果更新所述流程走向表;

在响应所述网络请求时,针对所述网络请求下发跟踪代码,所述跟踪代码中包含所述当前请求标识以及下发所述跟踪代码的时间戳;其中,若在所述网络请求的基础上再次发起新的网络请求时,所述跟踪代码将所述当前请求标识和所述时间戳添加于所述新的网络请求的流程信息中。

9.一种基于大数据的业务逻辑防护方法,其特征在于,所述方法包括:

接收请求方发来的网络请求,并识别所述网络请求的当前请求标识;

若所述当前请求标识不是起点请求标识,从所述网络请求的流程信息中解析出引用请求标识,并判断由所述引用请求标识指向所述当前请求标识的走向是否存在于流程走向表中;若存在,计算接收到所述网络请求的当前时间与所述流程信息中记载的所述引用请求标识的时间戳之间的时间差;

判断计算的所述时间差是否处于所述流程走向表中记录的所述当前请求标识和所述引用请求标识之间的时间差范围内,若不处于,返回至所述当前请求标识所处的请求流程中的起点请求标识,并在响应所述起点请求标识对应的网络请求时,针对所述起点请求标识对应的网络请求下发跟踪代码,所述跟踪代码中包含所述起点请求标识以及下发所述跟踪代码的时间戳。

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

若所述当前请求标识为起点请求标识,在响应所述网络请求时,针对所述网络请求下发跟踪代码,所述跟踪代码中包含所述当前请求标识以及下发所述跟踪代码的时间戳;其中,若在所述网络请求的基础上再次发起新的网络请求时,所述跟踪代码将所述当前请求标识和所述时间戳添加于所述新的网络请求的流程信息中。

11.根据权利要求9所述的方法,其特征在于,若所述网络请求不具备流程信息,所述方法还包括:记录所述请求方的标识,并累计所述请求方在指定时限内发送不具备所述流程信息的所述网络请求的次数;其中,当累计的次数达到次数阈值时,拒绝所述请求方发来的网络请求;

在响应所述网络请求时,针对所述网络请求下发跟踪代码,所述跟踪代码中包含所述当前请求标识以及下发所述跟踪代码的时间戳。

12.根据权利要求9所述的方法,其特征在于,若由所述引用请求标识指向所述当前请求标识的走向不存在于流程走向表中,所述方法还包括:在响应所述网络请求时,针对所述网络请求下发跟踪代码,所述跟踪代码对应的跟踪信息为所述网络请求的流程信息和所述当前请求标识的集合以及下发所述跟踪代码的时间戳;

或者

返回至所述当前请求标识所处的请求流程中的起点请求标识,并在响应所述起点请求标识对应的网络请求时,针对所述起点请求标识对应的网络请求下发跟踪代码,所述跟踪代码中包含所述起点请求标识以及下发所述跟踪代码的时间戳。

13.根据权利要求9所述的方法,其特征在于,若计算的所述时间差处于所述时间差范围内,所述方法还包括:在响应所述网络请求时,针对所述网络请求下发跟踪代码,所述跟踪代码对应的跟踪信息为所述网络请求的流程信息和所述当前请求标识的集合以及下发所述跟踪代码的时间戳。

14.一种基于大数据的业务逻辑防护装置,其特征在于,所述装置包括存储器和处理器,所述存储器中存储有计算机程序,所述计算机程序被所述处理器执行时,实现以下步骤:接收请求方发来的网络请求,并识别所述网络请求的当前请求标识;

若所述当前请求标识不是起点请求标识,从所述网络请求的流程信息中解析出引用请求标识,并判断由所述引用请求标识指向所述当前请求标识的走向是否存在于流程走向表中;若存在,计算接收到所述网络请求的当前时间与所述流程信息中记载的所述引用请求标识的时间戳之间的时间差;

判断计算的所述时间差是否处于所述流程走向表中记录的所述当前请求标识和所述引用请求标识之间的时间差范围内,若不处于,返回至所述当前请求标识所处的请求流程中的起点请求标识,并在响应所述起点请求标识对应的网络请求时,针对所述起点请求标识对应的网络请求下发跟踪代码,所述跟踪代码中包含所述起点请求标识以及下发所述跟踪代码的时间戳。

说明书 :

基于大数据的业务逻辑学习、防护方法及学习、防护装置

技术领域

[0001] 本发明涉及互联网技术领域,特别涉及一种基于大数据的业务逻辑学习、防护方法及学习、防护装置。

背景技术

[0002] 随着互联网和计算机技术的不断发展,业务系统的复杂程度也随着业务需求的发展不断提高,业务的多样性会使得主体业务逻辑延伸出逻辑分支,业务逻辑也变得越来越复杂。复杂的业务逻辑往往会产生一定的缺陷,而业务逻辑的缺陷会导致一些漏洞。例如:订单的业务逻辑出现漏洞时,订单的金额可以被随意修改,从而造成严重的金融问题。
[0003] 现有的业务逻辑的防护措施通常是对业务逻辑进行多重校验或者人工审核,然而,这些方式往往伴随着复杂的认证过程并且会浪费较多的人力物力,防护效率不高并且会损害客户的使用体验。

发明内容

[0004] 本申请的目的在于提供一种基于大数据的业务逻辑学习、防护方法及学习、防护装置,能够提高业务逻辑的防护效率,可以适应各种各样的业务逻辑场景,能灵活的适应各种业务逻辑需求的变更。
[0005] 为实现上述目的,本申请一方面提供一种基于大数据的业务逻辑学习方法,所述方法包括:接收请求方发来的网络请求,并识别所述网络请求的当前请求标识以及解析所述网络请求的流程信息;从所述流程信息中提取引用请求标识,并判断在流程走向表中是否存在由所述引用请求标识指向所述当前请求标识的走向,并基于判断结果更新所述流程走向表;在响应所述网络请求时,针对所述网络请求下发跟踪代码,所述跟踪代码中包含所述当前请求标识以及下发所述跟踪代码的时间戳;其中,若在所述网络请求的基础上再次发起新的网络请求时,所述跟踪代码将所述当前请求标识和所述时间戳添加于所述新的网络请求的流程信息中。
[0006] 为实现上述目的,本申请另一方面还提供一种基于大数据的业务逻辑学习装置,所述装置包括存储器和处理器,所述存储器中存储有计算机程序,所述计算机程序被所述处理器执行时,实现以下步骤:接收请求方发来的网络请求,并识别所述网络请求的当前请求标识以及解析所述网络请求的流程信息;从所述流程信息中提取引用请求标识,并判断在流程走向表中是否存在由所述引用请求标识指向所述当前请求标识的走向,并基于判断结果更新所述流程走向表;在响应所述网络请求时,针对所述网络请求下发跟踪代码,所述跟踪代码中包含所述当前请求标识以及下发所述跟踪代码的时间戳;其中,若在所述网络请求的基础上再次发起新的网络请求时,所述跟踪代码将所述当前请求标识和所述时间戳添加于所述新的网络请求的流程信息中。
[0007] 为实现上述目的,本申请另一方面还提供一种基于大数据的业务逻辑防护方法,所述方法包括:接收请求方发来的网络请求,并识别所述网络请求的当前请求标识;若所述当前请求标识不是起点请求标识,从所述网络请求的流程信息中解析出引用请求标识,并判断由所述引用请求标识指向所述当前请求标识的走向是否存在于流程走向表中;若存在,计算接收到所述网络请求的当前时间与所述流程信息中记载的所述引用请求标识的时间戳之间的时间差;判断计算的所述时间差是否处于所述流程走向表中记录的所述当前请求标识和所述引用请求标识之间的时间差范围内,若不处于,返回至所述当前请求标识所处的请求流程中的起点请求标识,并在响应所述起点请求标识对应的网络请求时,针对所述起点请求标识对应的网络请求下发跟踪代码,所述跟踪代码中包含所述起点请求标识以及下发所述跟踪代码的时间戳。
[0008] 为实现上述目的,本申请另一方面还提供一种基于大数据的业务逻辑防护装置,所述装置包括存储器和处理器,所述存储器中存储有计算机程序,所述计算机程序被所述处理器执行时,实现以下步骤:接收请求方发来的网络请求,并识别所述网络请求的当前请求标识;若所述当前请求标识不是起点请求标识,从所述网络请求的流程信息中解析出引用请求标识,并判断由所述引用请求标识指向所述当前请求标识的走向是否存在于流程走向表中;若存在,计算接收到所述网络请求的当前时间与所述流程信息中记载的所述引用请求标识的时间戳之间的时间差;判断计算的所述时间差是否处于所述流程走向表中记录的所述当前请求标识和所述引用请求标识之间的时间差范围内,若不处于,返回至所述当前请求标识所处的请求流程中的起点请求标识,并在响应所述起点请求标识对应的网络请求时,针对所述起点请求标识对应的网络请求下发跟踪代码,所述跟踪代码中包含所述起点请求标识以及下发所述跟踪代码的时间戳。
[0009] 由上可见,本申请提供的技术方案,一方面,基于大数据学习,可以针对大量的网络请求进行业务逻辑的学习过程,从而总结出正常的请求流程。具体地,在接收到网络请求之后,可以识别该网络请求的当前请求标识,并解析该网络请求的流程信息。其中,所述当前请求标识可以唯一地表征该网络请求,所述流程信息中的引用请求标识则可以体现该网络请求的引用页面。这样,可以构成由所述引用请求标识指向所述当前请求标识的走向,并根据本次的走向,对流程走向表进行更新。后续在响应该网络请求时,可以下发跟踪代码,该跟踪代码中可以包含所述当前请求标识以及下发所述跟踪代码的时间戳。这样,当在所述网络请求的基础上再次发起新的网络请求时,所述跟踪代码可以将所述当前请求标识和所述时间戳添加于所述新的网络请求的流程信息中,从而将所述当前请求标识作为新的网络请求的引用请求标识。通过上述的方式,基于大数据学习,对大量的网络请求进行分析后,可以逐步完善流程走向表,从而总结出正常的请求流程。另一方面,当需要对接收到的网络请求进行分析时,可以识别出该网络请求的当前请求标识,并分析出其引用的引用请求标识。然后,可以判断由引用请求标识指向当前请求标识的走向是否存在于学习得到的流程走向表中,进一步地还可以分析该走向对应的时间差是否处于正常的时间差范围内,从而判断该网络请求是否符合正常的业务逻辑。如果不符合,可以返回至所述当前请求标识所处的请求流程中的起点请求标识,从而重新开始业务逻辑的访问过程。由上可见,本申请提供的技术方案,针对不同的业务逻辑进行大数据学习,根据学习结果对日常的业务逻辑进行防护,能有效的防止未知或隐藏的漏洞被攻击者利用。同时,由于是基于大数据学习后再进行防护,故本申请的技术方案可以适应各种各样的业务逻辑场景,能灵活的适应各种业务逻辑需求的变更。另外,还避免了复杂的认证过程,并且可以节省大量的人力和物力,从而能够提高业务逻辑的防护效率。

附图说明

[0010] 为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0011] 图1是本发明实施例中基于大数据的业务逻辑学习方法流程图;
[0012] 图2是本发明实施例中基于大数据的业务逻辑学习装置的结构示意图;
[0013] 图3是本发明实施例中基于大数据的业务逻辑防护方法流程图;
[0014] 图4是本发明实施例中计算机终端的结构示意图。

具体实施方式

[0015] 为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
[0016] 实施例一
[0017] 本申请提供一种基于大数据的业务逻辑学习方法,请参阅图1,所述方法可以包括以下步骤。
[0018] S11:接收请求方发来的网络请求,并识别所述网络请求的当前请求标识以及解析所述网络请求的流程信息。
[0019] 在本实施方式中,所述网络请求可以是包含URL(Uniform Resource Locator,统一资源定位符)的HTTP请求。针对大量的网络请求,可以根据网络请求中携带的参数将网络请求进行归类,将同一类别的网络请求格式化成同一个参数类型的格式化请求,大量的网络请求通过归类从而可以格式化成不同参数类型的格式化请求。例如,网络请求的URL为http://www.xx.com/xx.php?a=1,http://www.xx.com/xx.php?a=2,其中该些URL中携带参数a=1或a=2可以统一格式化为一个整型的格式化请求http://www.xx.com/xx.php?a=[d]。请参阅表1,格式化请求可以划分为整型、字符串型、混合型、枚举型以及其它类型。如表1所示,整型的格式化请求的类型可以通过参数a=[d]来表示;字符串型的格式化请求的类型可以通过参数a=[s]来表示;混合型的格式化请求的类型可以通过参数a=[m]来表示;枚举型的格式化请求的类型则可以按照参数的不同逐一列举,例如表1中的a=add和a=delete;而其他类型的格式化请求的类型可以通过参数a=[e]来表示。
[0020] 表1网络请求的类型与格式化请求的对应关系示意表
[0021]
[0022] 在本实施方式中,针对每个格式化请求,可以分配唯一标识。所述唯一标识可以按照固定的格式生成,具体地,所述唯一标识可以由a-z以及0-9中任意三位字母/数字构成。例如,在接收到请求方发来的网络请求后,可以对网络请求进行归类,将该网络请求格式化为对应参数类型的格式化请求,然后再给格式化请求分配一个唯一标识,并将分配给所述格式化请求的唯一标识作为所述网络请求的当前请求标识。对于具备相同参数类型的格式化请求,但如果请求路径不同,那么最终分配的唯一标识也是不同的。
[0023] 在本实施方式中,所述网络请求中包含流程信息,所述流程信息可以表征该网络请求是基于哪个网络请求发出的。例如,当前接收到的网络请求为请求A,而该请求A是在请求B指向的页面中发起的,那么请求A的流程信息则可以表征当前请求A是基于请求B发起的,也可以理解为当前请求A的上一级请求是请求B。因此,所述流程信息中可以包含引用请求标识以及该引用请求标识对应的时间戳,所以从流程信息中可以知道当前接收到的网络请求是基于该引用请求标识对应的网络请求发起的。
[0024] S13:从所述流程信息中提取引用请求标识,并判断在流程走向表中是否存在由所述引用请求标识指向所述当前请求标识的走向,并基于判断结果更新所述流程走向表。
[0025] 在本实施方式中,在从所述网络请求中解析得到流程信息之后,则表明该网络请求存在上一级网络请求。这样,可以从所述流程信息中提取引用请求标识,那么便可以得到由该引用请求标识指向当前请求标识的走向。例如,所述引用请求标识为a02,所述当前请求标识为b01,那么此时可以得到a02指向b01的走向。
[0026] 在本实施方式中,网络请求之间的走向可以记录于流程走向表中。此时,在得到由所述引用请求标识指向所述当前请求标识的走向之后,可以判断在流程走向表中是否存在该走向,并可以根据判断的结果对流程走向表进行更新。具体地,若在所述流程走向表中存在由所述引用请求标识指向所述当前请求标识的走向,则可以将所述走向的流量总数增加1,从而累计该走向的流量总数。然后,更新走向的时间差。具体地,可以读取所述流程走向表中记录的所述当前请求标识和所述引用请求标识之间的时间差范围,并计算接收到所述网络请求的当前时间与所述流程信息中记载的所述引用请求标识的时间戳之间的时间差,并判断计算的所述时间差是否处于流程走向表中记录的时间差范围内,并基于判断结果,对所述时间差范围进行更新。具体地,在对时间差范围进行更新时,可以包括多种情况。若计算的所述时间差小于所述时间差范围的最小值,则可以将所述时间差范围的最小值更改为计算的所述时间差。例如,所述时间差范围为0.2s至1s,而计算得到的时间差为0.1s,此时则可以将时间差范围修改为0.1s至1s。若计算的所述时间差大于所述时间差范围的最大值,将所述时间差范围的最大值更改为计算的所述时间差。例如,所述时间差范围为0.2s至
1s,而计算得到的时间差为1.5s,此时则可以将时间差范围修改为0.2s至1.5s。若计算的所述时间差处于所述时间差范围内,则可以保持所述时间差范围不变。
[0027] 在一个实施方式中,流程走向表中记载的时间差范围可以只是一个固定值,而不是一个时间区间。此时,可以对比计算的所述时间差与所述固定值的大小,若计算的所述时间差小于所述固定值,可以将所述时间差范围修改为最小值为计算的所述时间差并且最大值为所述固定值的区间。例如,所述固定值为0.2s,而计算得到的时间差为0.1s,此时则可以将时间差范围修改为0.1s至0.2s。此外,若计算的所述时间差大于所述固定值,可以将所述时间差范围修改为最小值为所述固定值并且最大值为计算的所述时间差的区间。例如,所述固定值为0.2s,而计算得到的时间差为0.5s,此时则可以将时间差范围修改为0.2s至0.5s。当然,若计算的所述时间差与所述固定值相同,则可以不对时间差范围进行更改。
[0028] 在一个实施方式中,若在所述流程走向表中不存在由所述引用请求标识指向所述当前请求标识的走向,则可以在所述流程走向表中创建所述走向,并将所述走向的流量总数置为1,以及将接收到所述网络请求的当前时间与所述流程信息中记载的所述引用请求标识的时间戳之间的时间差记录为所述走向的时间差。后续如果出现相同的走向,则可以对创建的该走向进行更新。
[0029] 在一个实施方式中,若所述网络请求中不包含流程信息,则表明该网络请求并不是基于其它的网络请求发起的,而是作为网络请求的起点。此时,在响应所述网络请求时,可以针对所述网络请求下发跟踪代码,所述跟踪代码中包含所述当前请求标识以及下发所述跟踪代码的时间戳。所述跟踪代码的作用在于,若在所述网络请求的基础上再次发起新的网络请求时,所述跟踪代码可以将所述当前请求标识和所述时间戳添加于所述新的网络请求的流程信息中。例如,当前接收到的网络请求为请求A,该请求A不包含流程信息,此时,在响应该请求A时,可以针对该请求A下发跟踪代码,该跟踪代码中可以包含请求A的当前请求标识a01(也即请求A对应格式化请求的唯一标识)以及下发跟踪代码的时间戳。那么如果从该请求A指向的页面中发起新的请求B时,跟踪代码则可以将a01作为引用请求标识添加于请求B的流程信息中,同时还可以将下发跟踪代码的时间戳一并添加于请求B的流程信息中,该时间戳可以用于计算当前请求标识与引用请求标识形成的走向对应的时间差。
[0030] S15:在响应所述网络请求时,针对所述网络请求下发跟踪代码,所述跟踪代码中包含所述当前请求标识以及下发所述跟踪代码的时间戳;其中,若在所述网络请求的基础上再次发起新的网络请求时,所述跟踪代码将所述当前请求标识和所述时间戳添加于所述新的网络请求的流程信息中。
[0031] 在本实施方式中,在基于步骤S13中的判断结果对流程走向表进行更新之后,可以在响应所述网络请求时,针对所述网络请求下发跟踪代码,所述跟踪代码中可以包含所述当前请求标识以及下发所述跟踪代码的时间戳。与步骤S13中的描述一致,所述跟踪代码的作用在于,若在所述网络请求的基础上再次发起新的网络请求时,所述跟踪代码可以将所述当前请求标识和所述时间戳添加于所述新的网络请求的流程信息中。这样,通过下发跟踪代码,从而可以对新的网络请求的流程信息进行更新。
[0032] 在实际应用中,跟踪代码在添加请求标识和时间戳时,一般存在多种场景。其中一种场景为,在所述网络请求指向的页面加载之前,可以遍历该页面的文档(document)中的指定标签,并在所述指定标签对应的网络请求中添加所述当前请求标识和所述时间戳。所述指定标签例如可以是A标签、form标签以及iframe标签。这些标签均可以引用新的网络请求,因此针对这些标签对应的网络请求,跟踪代码可以添加对应的流程信息。此外,根据所述指定标签对应的网络请求中所携带的参数的情况,可以判断是否需要在所述指定标签对应的网络请求中添加隐藏的输入标签。例如,若指定标签对应的网络请求为POST请求时,可以添加一个隐藏的input标签。
[0033] 另一种场景为,可以钩挂(hook)用于实现页面跳转和动态发起请求的函数,这些函数例如可以是window.open函数和XMLHTTPRequest函数等,此时,可以在所述用于实现页面跳转和动态发起请求的函数对应的网络请求中添加所述当前请求标识和所述时间戳。
[0034] 还有一种场景为,可以钩挂(hook)用于实现动态添加页面的函数,所述函数例如可以是appendChild函数和innerHTML函数等,此时,可以在所述用于实现动态添加页面的函数添加指定标签时,在所述指定标签对应的网络请求中添加所述当前请求标识和所述时间戳。该指定标签例如可以是上述的A标签、form标签以及iframe标签。
[0035] 在一个实施方式中,在对流程走向表中的各条走向进行更新之后,可以根据所述流程走向表中记录的各条走向,统计各个请求标识的出入流量信息。其中,出入流量信息符合指定条件的请求标识可以作为起点请求标识。所述起点请求标识可以作为一个请求流程的起点。具体地,可以将入流量与出流量之间的比值小于或者等于第一阈值,并且入流量与总流量之间的比值小于第二阈值的请求标识作为起点请求标识。所述第一阈值例如可以是1/4,所述第二阈值例如可以是1/6,当然,在实际应用中,所述第一阈值和第二阈值的具体数值可以灵活调整,本申请对此并不做限定。
[0036] 在本实施方式中,在确定了起点请求标识之后,可以统计所述起点请求标识对应的请求流程。举例来说,a作为一个起点请求标识,有以下走向:
[0037] a->b,a->c,a->d,b->c,b->d,c->b,c->d;
[0038] 那么基于上述的走向,可以统计得到以下请求流程:
[0039] a->b->c->b,a->b->c->d,a->b->d,a->c->b->c,a->c->d,a->d。
[0040] 上述的请求流程中,相邻两个请求标识之间可以具备时间差范围。
[0041] 这样,基于大数据学习,针对大量的网络请求进行学习之后,可以得到比较完备的流程走向表,从而可以总结得到正常业务逻辑的请求流程。
[0042] 实施例二
[0043] 请参阅图2,本申请还提供一种基于大数据的业务逻辑学习装置,所述装置包括存储器和处理器,所述存储器中存储有计算机程序,所述计算机程序被所述处理器执行时,实现以下步骤:
[0044] 接收请求方发来的网络请求,并识别所述网络请求的当前请求标识以及解析所述网络请求的流程信息;
[0045] 从所述流程信息中提取引用请求标识,并判断在流程走向表中是否存在由所述引用请求标识指向所述当前请求标识的走向,并基于判断结果更新所述流程走向表;
[0046] 在响应所述网络请求时,针对所述网络请求下发跟踪代码,所述跟踪代码中包含所述当前请求标识以及下发所述跟踪代码的时间戳;其中,若在所述网络请求的基础上再次发起新的网络请求时,所述跟踪代码将所述当前请求标识和所述时间戳添加于所述新的网络请求的流程信息中。
[0047] 在本实施方式中,所述存储器可以包括用于存储信息的物理装置,通常是将信息数字化后再以利用电、磁或者光学等方法的媒体加以存储。本实施方式所述的存储器又可以包括:利用电能方式存储信息的装置,如RAM、ROM等;利用磁能方式存储信息的装置,如硬盘、软盘、磁带、磁芯存储器、磁泡存储器、U盘;利用光学方式存储信息的装置,如CD或DVD。当然,还有其他方式的计算机存储介质,例如量子存储器、石墨烯存储器等等。
[0048] 在本实施方式中,所述处理器可以按任何适当的方式实现。例如,所述处理器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式等等。
[0049] 本说明书实施方式提供的基于大数据的业务逻辑学习装置,其实现的具体功能,可以与本说明书中的前述实施方式相对照解释,并能够达到前述实施方式的技术效果,这里便不再赘述。
[0050] 实施例三
[0051] 基于大数据学习,在完成业务逻辑学习过程后,本申请还提供一种基于大数据的业务逻辑防护方法,请参阅图3,所述方法包括:
[0052] S21:接收请求方发来的网络请求,并识别所述网络请求的当前请求标识。
[0053] 在本实施方式中,在接收到网络请求后,可以对该网络请求的业务逻辑进行判断。具体地,首先可以将该网络请求格式化为对应的参数类型的格式化请求,根据前述实施例一的学习方法可知,每个格式化请求都对应一个唯一标识,然后去学习结果中查询该格式化请求是否存在对应的唯一标识。
[0054] 需要说明的是,如果无法查找到该网络请求对应的格式化请求的唯一标识,则说明该网络请求在学习过程中没有对应的学习样本,此时,可以记录该网络请求中的URL,并可以累计该URL出现的次数。同时,为了完善请求流程,可以针对该网络请求下发跟踪代码,该跟踪代码中可以包含该网络请求的当前请求标识以及下发跟踪代码的时间戳。
[0055] S23:若所述当前请求标识不是起点请求标识,从所述网络请求的流程信息中解析出引用请求标识,并判断由所述引用请求标识指向所述当前请求标识的走向是否存在于流程走向表中;若存在,计算接收到所述网络请求的当前时间与所述流程信息中记载的所述引用请求标识的时间戳之间的时间差。
[0056] 在本实施方式中,在识别出所述当前请求标识之后,可以根据学习阶段确定出的起点请求标识,判断该当前请求标识是否为起点请求标识。请参阅图3,若所述当前请求标识为起点请求标识,则表明该网络请求并非基于其它网络请求发起的,而是一个请求流程的起点,此时,可以在响应所述网络请求时,针对所述网络请求下发跟踪代码,所述跟踪代码中可以包含所述当前请求标识以及下发所述跟踪代码的时间戳。这样,若在所述网络请求的基础上再次发起新的网络请求时,所述跟踪代码可以将所述当前请求标识和所述时间戳添加于所述新的网络请求的流程信息中,从而对后续的请求流程进行跟踪。
[0057] 在本实施方式中,若所述当前请求标识不是起点请求标识,那么说明该网络请求应当是基于其它网络请求发起的,那么该网络请求应当携带流程信息。此时,可以判断该网络请求是否携带流程信息,如果没有携带流程信息,则说明该网络请求与正常的业务逻辑不符,可能是存在问题的网络请求。此时,可以记录发送该网络请求的请求方的标识,并累计所述请求方在指定时限内发送不具备所述流程信息的所述网络请求的次数。如果该请求方在短时间内一直发送不携带流程信息的该网络请求,则说明该请求方是存在问题的请求方,该请求方可能在试图破坏正常的业务逻辑。此时,当累计的次数达到次数阈值时,可以拒绝所述请求方发来的网络请求。在本实施方式中,在累计次数之后,还可以在响应所述网络请求时,针对所述网络请求下发跟踪代码,所述跟踪代码中可以包含所述当前请求标识以及下发所述跟踪代码的时间戳,从而对该网络请求进行跟踪。
[0058] 在本实施方式中,若所述网络请求存在流程信息,可以从所述网络请求的流程信息中解析出引用请求标识,并判断由所述引用请求标识指向所述当前请求标识的走向是否存在于流程走向表中。若不存在,则说明该走向是错误的走向,不符合正常的业务逻辑。此时,一方面可以在响应所述网络请求时,针对所述网络请求下发跟踪代码,所述跟踪代码对应的跟踪信息为所述网络请求的流程信息和所述当前请求标识的集合以及下发所述跟踪代码的时间戳,这样可以对该网络请求后续的请求流程进行跟踪。另一方面,还可以直接返回至所述当前请求标识所处的请求流程中的起点请求标识,从而重新开始业务逻辑的访问过程。然后可以在响应所述起点请求标识对应的网络请求时,针对所述起点请求标识对应的网络请求下发跟踪代码,所述跟踪代码中包含所述起点请求标识以及下发所述跟踪代码的时间戳,从而继续对重新发起的网络请求继续跟踪。
[0059] 在本实施方式中,若在学习得到的流程走向表中存在上述的走向,可以进一步判断该走向的时间差是否正确。具体地,可以计算接收到所述网络请求的当前时间与所述流程信息中记载的所述引用请求标识的时间戳之间的时间差。
[0060] S25:判断计算的所述时间差是否处于所述流程走向表中记录的所述当前请求标识和所述引用请求标识之间的时间差范围内,若不处于,返回至所述当前请求标识所处的请求流程中的起点请求标识,并在响应所述起点请求标识对应的网络请求时,针对所述起点请求标识对应的网络请求下发跟踪代码,所述跟踪代码中包含所述起点请求标识以及下发所述跟踪代码的时间戳。
[0061] 在本实施方式中,在计算得到所述时间差之后,可以将该时间差与流程走向表中记载的时间差范围进行对比。具体地,若计算的所述时间差处于所述时间差范围内,则表明该网络请求是符合正常业务逻辑的,此时可以在响应所述网络请求时,针对所述网络请求下发跟踪代码,所述跟踪代码对应的跟踪信息为所述网络请求的流程信息和所述当前请求标识的集合以及下发所述跟踪代码的时间戳。这样,可以对后续的网络请求进行跟踪,从而进行后续的网络请求的防护过程。然而,若计算的所述时间差不处于所述时间差范围内,则表明当前的网络请求存在问题,此时可以返回至所述当前请求标识所处的请求流程中的起点请求标识,从而重新开始业务逻辑的访问过程。然后,可以在响应所述起点请求标识对应的网络请求时,针对所述起点请求标识对应的网络请求下发跟踪代码,所述跟踪代码中包含所述起点请求标识以及下发所述跟踪代码的时间戳,从而继续对重新发起的网络请求继续跟踪,并执行相应的防护过程。
[0062] 需要说明的是,跟踪代码通常只在content-type是text/html以及返回状态码是200的页面下发,在返回状态码为30X的页面中,可以对location地址进行修改并加上流程信息进行跟踪。
[0063] 实施例四
[0064] 本申请还提供一种基于大数据的业务逻辑防护装置,所述装置包括存储器和处理器,所述存储器中存储有计算机程序,所述计算机程序被所述处理器执行时,实现以下步骤:
[0065] 接收请求方发来的网络请求,并识别所述网络请求的当前请求标识;
[0066] 若所述当前请求标识不是起点请求标识,从所述网络请求的流程信息中解析出引用请求标识,并判断由所述引用请求标识指向所述当前请求标识的走向是否存在于流程走向表中;若存在,计算接收到所述网络请求的当前时间与所述流程信息中记载的所述引用请求标识的时间戳之间的时间差;
[0067] 判断计算的所述时间差是否处于所述流程走向表中记录的所述当前请求标识和所述引用请求标识之间的时间差范围内,若不处于,返回至所述当前请求标识所处的请求流程中的起点请求标识,并在响应所述起点请求标识对应的网络请求时,针对所述起点请求标识对应的网络请求下发跟踪代码,所述跟踪代码中包含所述起点请求标识以及下发所述跟踪代码的时间戳。
[0068] 在本实施方式中,所述存储器可以包括用于存储信息的物理装置,通常是将信息数字化后再以利用电、磁或者光学等方法的媒体加以存储。本实施方式所述的存储器又可以包括:利用电能方式存储信息的装置,如RAM、ROM等;利用磁能方式存储信息的装置,如硬盘、软盘、磁带、磁芯存储器、磁泡存储器、U盘;利用光学方式存储信息的装置,如CD或DVD。当然,还有其他方式的计算机存储介质,例如量子存储器、石墨烯存储器等等。
[0069] 在本实施方式中,所述处理器可以按任何适当的方式实现。例如,所述处理器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式等等。
[0070] 本说明书实施方式提供的基于大数据的业务逻辑防护装置,其实现的具体功能,可以与本说明书中的前述实施方式相对照解释,并能够达到前述实施方式的技术效果,这里便不再赘述。
[0071] 请参阅图4,在本申请中,上述实施例中的技术方案可以应用于如图4所示的计算机终端10上。计算机终端10可以包括一个或多个(图中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器104、以及用于通信功能的传输模块106。本领域普通技术人员可以理解,图4所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算机终端10还可包括比图4中所示更多或者更少的组件,或者具有与图4所示不同的配置。
[0072] 具体地,在本申请中,上述的业务逻辑的学习和防护方法可以作为计算机程序存储于上述的存储器104中,所述存储器104可以与处理器102耦合,那么当处理器102执行所述存储器104中的计算机程序时,便可以实现上述的业务逻辑的学习和防护方法中的各个步骤。
[0073] 存储器104可用于存储应用软件的软件程序以及模块,处理器102通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
[0074] 传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端10的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
[0075] 由上可见,本申请提供的技术方案,一方面,基于大数据学习,可以针对大量的网络请求进行业务逻辑的学习过程,从而总结出正常的请求流程。具体地,在接收到网络请求之后,可以识别该网络请求的当前请求标识,并解析该网络请求的流程信息。其中,所述当前请求标识可以唯一地表征该网络请求,所述流程信息中的引用请求标识则可以体现该网络请求的引用页面。这样,可以构成由所述引用请求标识指向所述当前请求标识的走向,并根据本次的走向,对流程走向表进行更新。后续在响应该网络请求时,可以下发跟踪代码,该跟踪代码中可以包含所述当前请求标识以及下发所述跟踪代码的时间戳。这样,当在所述网络请求的基础上再次发起新的网络请求时,所述跟踪代码可以将所述当前请求标识和所述时间戳添加于所述新的网络请求的流程信息中,从而将所述当前请求标识作为新的网络请求的引用请求标识。通过上述的方式,对大量的网络请求进行分析后,可以逐步完善流程走向表,从而总结出正常的请求流程。另一方面,当需要对接收到的网络请求进行分析时,可以识别出该网络请求的当前请求标识,并分析出其引用的引用请求标识。然后,可以判断由引用请求标识指向当前请求标识的走向是否存在于学习得到的流程走向表中,进一步地还可以分析该走向对应的时间差是否处于正常的时间差范围内,从而判断该网络请求是否符合正常的业务逻辑。如果不符合,可以返回至所述当前请求标识所处的请求流程中的起点请求标识,从而重新开始业务逻辑的访问过程。由上可见,本申请提供的技术方案,针对不同的业务逻辑进行大数据学习,根据学习结果对日常的业务逻辑进行防护,能有效的防止未知或隐藏的漏洞被攻击者利用。同时,由于是基于大数据学习后再进行防护,故本申请的技术方案可以适应各种各样的业务逻辑场景,能灵活的适应各种业务逻辑需求的变更。另外,还避免了复杂的认证过程,并且可以节省大量的人力和物力,从而能够提高业务逻辑的防护效率。
[0076] 通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件来实现。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
[0077] 以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。