WEB应用防火墙及拥塞控制方法、介质及电子设备转让专利

申请号 : CN202110981546.X

文献号 : CN113810383B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 石达锋范渊

申请人 : 杭州安恒信息技术股份有限公司

摘要 :

一种WEB应用防火墙及拥塞控制方法、介质及电子设备,该方法包括:接收数据报文,并判断数据报文是否为最后一个节点的安全功能模块发送;若是,为数据报文设置超时时间戳;根据当前时间以及超时时间戳确定数据报文的剩余处理时间;判断剩余处理时间是否大于或等于需工作的当前节点的安全功能模块的报文处理时间;若是,将数据报文发送至当前节点的所述安全功能模块,以使当前节点的安全功能模块对数据报文进行处理,并返回处理完成的数据报文至转发控制器;若否,将下一节点作为需工作的当前节点,并返回执行判断数据报文并非为最后一个节点的安全功能模块发送的步骤,本发明可最大化兼容各类复杂环境。

权利要求 :

1.一种WEB应用防火墙拥塞控制方法,其特征在于,所述WEB应用防火墙包括转发控制器和多个节点的安全功能模块,各个节点的所述安全功能模块用于按照预设的工作顺序处理客户端向服务器发送的数据报文,所述方法应用于所述转发控制器,所述WEB应用防火墙拥塞控制方法包括:接收所述数据报文,并判断所述数据报文是否为最后一个节点的所述安全功能模块发送;

当所述数据报文并非为最后一个节点的所述安全功能模块发送的时,为所述数据报文设置超时时间戳;

根据当前时间以及所述超时时间戳确定所述数据报文的剩余处理时间;

判断所述剩余处理时间是否大于或等于需工作的当前节点的所述安全功能模块的报文处理时间;

若是,将所述数据报文发送至所述当前节点的所述安全功能模块,以使所述当前节点的所述安全功能模块对所述数据报文进行处理,并返回处理完成的数据报文至所述转发控制器;

若否,将下一节点作为需工作的当前节点,并返回执行判断所述数据报文并非为最后一个节点的所述安全功能模块发送的步骤。

2.如权利要求1所述的WEB应用防火墙拥塞控制方法,其特征在于,所述判断所述剩余处理时间是否大于或等于需工作的当前节点的所述安全功能模块的报文处理时间的步骤之前还包括:根据历史处理数据计算当前节点的所述安全功能模块处理数据报文的平均时间,并将计算得到的平均时间作为所述当前节点的所述安全功能模块的报文处理时间,所述历史处理数据包括所述当前节点的所述安全功能模块最近的预设时间段内多个成功处理的数据报文的处理时间。

3.如权利要求1所述的WEB应用防火墙拥塞控制方法,其特征在于,所述安全功能模块用于对接收到的所述数据报文进行异常检测处理,当所述安全功能模块检测到所述数据报文存在异常时,所述安全功能模块返回阻断信号至所述转发控制器;

所述WEB应用防火墙拥塞控制方法还包括:

当接收到所述阻断信号时,阻断所述客户端向所述服务器发送的所述数据报文。

4.如权利要求1所述的WEB应用防火墙拥塞控制方法,其特征在于,所述当前节点的所述安全功能模块返回处理完成的数据报文至所述转发控制器的同时,还返回处理完成所述数据报文的处理时间;

所述WEB应用防火墙拥塞控制方法还包括:

实时更新所述安全功能模块的处理时间。

5.如权利要求1所述的WEB应用防火墙拥塞控制方法,其特征在于,所述将所述数据报文发送至所述当前节点的所述安全功能模块,以使所述当前节点的所述安全功能模块对所述数据报文进行处理,并返回处理完成的数据报文至所述转发控制器的步骤之后还包括:当接收到所述当前节点的所述安全功能模块反馈的超时信号、错误返回码时,将下一节点作为需工作的当前节点,并返回执行判断所述剩余处理时间是否大于或等于需工作的当前节点的所述安全功能模块的报文处理时间的步骤。

6.如权利要求5所述的WEB应用防火墙拥塞控制方法,其特征在于,还包括:计算所述安全功能模块在预设时间内的错误率,并根据所述错误率计算所述安全功能模块的可发送窗口,所述错误率为所述预设时间内所述安全功能模块的反应超时次数、错误返回次数和被放弃的次数之和与所述预设时间内总的数据报文处理次数的比值,所述被放弃的次数即为所述安全功能模块在所述预设时间内无时间处理数据报文的次数。

7.如权利要求1所述的WEB应用防火墙拥塞控制方法,其特征在于,还包括:当所述数据报文为最后一个节点的所述安全功能模块发送的时,将所述数据报文发送至所述服务器。

8.一种WEB应用防火墙,其特征在于,所述WEB应用防火墙包括转发控制器和多个节点的安全功能模块,各个节点的所述安全功能模块用于按照预设的工作顺序处理客户端向服务器发送的数据报文,所述转发控制器包括:接收模块,用于接收所述数据报文;

第一判断模块,用于判断所述数据报文是否为最后一个节点的所述安全功能模块发送;

设置模块,用于当所述数据报文并非为最后一个节点的所述安全功能模块发送的时,为所述数据报文设置超时时间戳;

确定模块,用于根据当前时间以及所述超时时间戳确定所述数据报文的剩余处理时间;

第二判断模块,用于判断所述剩余处理时间是否大于或等于需工作的当前节点的所述安全功能模块的报文处理时间;

发送模块,用于所述剩余处理时间大于或等于需工作的当前节点的所述安全功能模块的报文处理时间时,将所述数据报文发送至所述当前节点的所述安全功能模块,以使所述当前节点的所述安全功能模块对所述数据报文进行处理,并返回处理完成的数据报文至所述转发控制器;

执行模块,用于所述剩余处理时间小于需工作的当前节点的所述安全功能模块的报文处理时间时,将下一节点作为需工作的当前节点,并返回执行判断所述数据报文并非为最后一个节点的所述安全功能模块发送的步骤。

9.一种可读存储介质,其上存储有程序,其特征在于,所述程序被处理器执行时实现如权利要求1-7任一所述的方法。

10.一种电子设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的程序,其特征在于,所述处理器执行所述程序时实现如权利要求1-7任意一项所述的方法。

说明书 :

WEB应用防火墙及拥塞控制方法、介质及电子设备

技术领域

[0001] 本发明涉及防火墙技术领域,特别是涉及一种WEB应用防火墙及拥塞控制方法、介质及电子设备。

背景技术

[0002] WEB应用系统的成熟发展,业务环境越来越复杂,对WEB应用防火墙的要求逐渐提升。Web应用防火墙为了自身稳定性,在自身设置了各种应急机制。市场上WEB应用防火墙的应急机制分类只有一种,即设置阈值的方式,当到达监控的阈值之后,WEB应用防火墙直接做出应急动作。目前常见的阈值包含但不限于CPU、内存、吞吐、TPS等。
[0003] 其实,这类设置阈值执行应急动作的机制,属于较为粗暴的一刀切想法。早期业务类型简单,可以暂时满足市场要求。直至今日,市场的要求提高,对WEB应用防火墙的性能,稳定都提出了进一步的要求。考虑HTTP业务的标准不统一,每台WEB应用防火墙部署的环境中,对WEB应用防火墙的要求是不一样的。
[0004] 目前的WEB应用防火墙无法紧密贴合每个业务场景,让WEB应用防火墙处于两难尴尬的局势。要不设置阈值较低,使WEB应用防火墙设备存在性能空余,无法有效使产品高价值体现;要不设置阈值较高,使WEB应用防火墙设备在业务复杂环境下容易触发意外宕机,无法保障WEB应用防火墙稳定性,避免WEB业务受损。
[0005] 为了解决上述问题,优化设备对场景的兼容性,创新发明新的拥塞机制,使WEB应用防火墙可以最高价值服务业务。

发明内容

[0006] 鉴于上述状况,有必要针对现有技术中WEB应用防火墙适应性不高的问题,提供一种WEB应用防火墙及拥塞控制方法、介质及电子设备。
[0007] 一种WEB应用防火墙拥塞控制方法,所述WEB应用防火墙包括转发控制器和多个节点的安全功能模块,各个节点的所述安全功能模块用于按照预设的工作顺序处理客户端向服务器发送的数据报文,所述方法应用于所述转发控制器,所述WEB应用防火墙拥塞控制方法包括:
[0008] 接收所述数据报文,并判断所述数据报文是否为最后一个节点的所述安全功能模块发送;
[0009] 当所述数据报文并非为最后一个节点的所述安全功能模块发送的时,为所述数据报文设置超时时间戳;
[0010] 根据当前时间以及所述超时时间戳确定所述数据报文的剩余处理时间;
[0011] 判断所述剩余处理时间是否大于或等于需工作的当前节点的所述安全功能模块的报文处理时间;
[0012] 若是,将所述数据报文发送至所述当前节点的所述安全功能模块,以使所述当前节点的所述安全功能模块对所述数据报文进行处理,并返回处理完成的数据报文至所述转发控制器;
[0013] 若否,将下一节点作为需工作的当前节点,并返回执行判断所述数据报文并非为最后一个节点的所述安全功能模块发送的步骤。
[0014] 进一步的,上述WEB应用防火墙拥塞控制方法,其中,所述判断所述剩余处理时间是否大于或等于需工作的当前节点的所述安全功能模块的报文处理时间的步骤之前还包括:
[0015] 根据历史处理数据计算当前节点的所述安全功能模块处理数据报文的平均时间,并将计算得到的平均时间作为所述当前节点的所述安全功能模块的报文处理时间,所述历史处理数据包括所述当前节点的所述安全功能模块最近的预设时间段内多个成功处理的数据报文的处理时间。
[0016] 进一步的,上述WEB应用防火墙拥塞控制方法,其中,所述安全功能模块用于对接收到的所述数据报文进行异常检测处理,当所述安全功能模块检测到所述数据报文存在异常时,所述安全功能模块返回阻断信号至所述转发控制器;
[0017] 所述WEB应用防火墙拥塞控制方法还包括:
[0018] 当接收到所述阻断信号时,阻断所述客户端向所述服务器发送的所述数据报文。
[0019] 进一步的,上述WEB应用防火墙拥塞控制方法,其中,所述当前节点的所述安全功能模块返回处理完成的数据报文至所述转发控制器的同时,还返回处理完成所述数据报文的处理时间;
[0020] 所述WEB应用防火墙拥塞控制方法还包括:
[0021] 实时更新所述安全功能模块的处理时间。
[0022] 进一步的,上述WEB应用防火墙拥塞控制方法,其中,所述将所述数据报文发送至所述当前节点的所述安全功能模块,以使所述当前节点的所述安全功能模块对所述数据报文进行处理,并返回处理完成的数据报文至所述转发控制器的步骤之后还包括:
[0023] 当接收到所述当前节点的所述安全功能模块反馈的超时信号、错误返回码时,将下一节点作为需工作的当前节点,并返回执行判断所述剩余处理时间是否大于或等于需工作的当前节点的所述安全功能模块的报文处理时间的步骤。
[0024] 进一步的,上述WEB应用防火墙拥塞控制方法,其中,还包括:
[0025] 计算所述安全功能模块在预设时间内的错误率,并根据所述错误率计算所述安全功能模块的可发送窗口,所述错误率为所述预设时间内所述安全功能模块的反应超时次数、错误返回次数和被放弃的次数之和与所述预设时间内总的数据报文处理次数的比值,所述被放弃的次数即为所述安全功能模块在所述预设时间内无时间处理数据报文的次数。
[0026] 进一步的,上述WEB应用防火墙拥塞控制方法,其中,还包括:
[0027] 当所述数据报文为最后一个节点的所述安全功能模块发送的时,将所述数据报文发送至所述服务器。
[0028] 本发明还公开了一种WEB应用防火墙,所述WEB应用防火墙包括转发控制器和多个节点的安全功能模块,各个节点的所述安全功能模块用于按照预设的工作顺序处理客户端向服务器发送的数据报文,所述转发控制器包括:
[0029] 接收模块,用于接收所述数据报文;
[0030] 第一判断模块,用于判断所述数据报文是否为最后一个节点的所述安全功能模块发送;
[0031] 设置模块,用于当所述数据报文并非为最后一个节点的所述安全功能模块发送的时,为所述数据报文设置超时时间戳;
[0032] 确定模块,用于根据当前时间以及所述超时时间戳确定所述数据报文的剩余处理时间;
[0033] 第二判断模块,用于判断所述剩余处理时间是否大于或等于需工作的当前节点的所述安全功能模块的报文处理时间;
[0034] 发送模块,用于所述剩余处理时间大于或等于需工作的当前节点的所述安全功能模块的报文处理时间时,将所述数据报文发送至所述当前节点的所述安全功能模块,以使所述当前节点的所述安全功能模块对所述数据报文进行处理,并返回处理完成的数据报文至所述转发控制器;
[0035] 执行模块,用于所述剩余处理时间小于需工作的当前节点的所述安全功能模块的报文处理时间时,将下一节点作为需工作的当前节点,并返回执行判断所述数据报文并非为最后一个节点的所述安全功能模块发送的步骤。
[0036] 进一步的,上述WEB应用防火墙,还包括:
[0037] 计算模块,用于根据历史处理数据计算当前节点的所述安全功能模块处理数据报文的平均时间,并将计算得到的平均时间作为所述当前节点的所述安全功能模块的报文处理时间,所述历史处理数据包括所述当前节点的所述安全功能模块最近的预设时间段内多个成功处理的数据报文的处理时间。
[0038] 进一步的,上述WEB应用防火墙,还包括:
[0039] 阻断模块,用于当接收到阻断信号时,阻断所述客户端向所述服务器发送的所述数据报文。
[0040] 本发明还公开了一种可读存储介质,其上存储有程序,所述程序被处理器执行时实现上述任一所述的方法。
[0041] 本发明还公开了一种电子设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的程序,其特征在于,所述处理器执行所述程序时实现上述任意一项所述的方法。
[0042] 本发明依靠WEB应用防火墙自身的代理工作机制,给HTTP请求的每个报文增加超时时间戳,针对时延作出判断是否执行拥塞控制。基于HTTP请求的转发处理,执行每个请求的拥塞控制,解决了早期粗暴的一刀切式拥塞控制的缺点,可以精准控制每个请求的处理能力,确保设备最大化的防护每一个环境应用系统。本发明可以最大化的利用WEB应用防火墙的处理能力,最大化兼容各类复杂环境,让WEB应用防火墙的价值得到最大利用,极具价值。

附图说明

[0043] 图1为本发明实施例中Web应用防火墙的工作流程示意图;
[0044] 图2为本发明第一实施例中WEB应用防火墙拥塞控制方法的流程图;
[0045] 图3为本发明第二实施例中WEB应用防火墙拥塞控制方法的流程图;
[0046] 图4为本发明第三实施例中WEB应用防火墙的结构框图;
[0047] 图5为本发明第四实施例中电子设备的结构示意图。
[0048] 如下具体实施方式将结合上述附图进一步说明本发明。

具体实施方式

[0049] 为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行描述和说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。基于本申请提供的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0050] 显而易见地,下面描述中的附图仅仅是本申请的一些示例或实施例,对于本领域的普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图将本申请应用于其他类似情景。此外,还可以理解的是,虽然这种开发过程中所作出的努力可能是复杂并且冗长的,然而对于与本申请公开的内容相关的本领域的普通技术人员而言,在本申请揭露的技术内容的基础上进行的一些设计,制造或者生产等变更只是常规的技术手段,不应当理解为本申请公开的内容不充分。
[0051] 在本申请中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域普通技术人员显式地和隐式地理解的是,本申请所描述的实施例在不冲突的情况下,可以与其它实施例相结合。
[0052] 除非另作定义,本申请所涉及的技术术语或者科学术语应当为本申请所属技术领域内具有一般技能的人士所理解的通常意义。本申请所涉及的“一”、“一个”、“一种”、“该”等类似词语并不表示数量限制,可表示单数或复数。本申请所涉及的术语“包括”、“包含”、“具有”以及它们任何变形,意图在于覆盖不排他的包含;例如包含了一系列步骤或模块(单元)的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可以还包括没有列出的步骤或单元,或可以还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。本申请所涉及的“连接”、“相连”、“耦接”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电气的连接,不管是直接的还是间接的。本申请所涉及的“多个”是指两个或两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。本申请所涉及的术语“第一”、“第二”、“第三”等仅仅是区别类似的对象,不代表针对对象的特定排序。
[0053] 本发明实施例中的WEB应用防火墙主要的防护检测对象是HTTP请求,WEB应用防火墙设备的拥塞和性能都和HTTP请求数量,HTTP请求报文内容,HTTP请求频率,HTTP请求报文大小息息相关。如图1所示,本发明实施例中的Web应用防火墙包括转发控制器11和多个节点的安全功能模块12,各个节点的所述安全功能模块12按照预设的工作顺序处理客户端13向服务器14发送的数据报文。数据流进入设备后,进入的第一个工作的模块是中央的转发控制器11。然后通过转发控制器11的分发,把数据报文逐步分发至各个节点的安全功能模块12进行处理,最终处理完毕之后,执行数据报文进行处理结果动作,该处理结果动作例如阻断或发送至服务器14。
[0054] 请参阅图2,为本发明第一实施例中的WEB应用防火墙拥塞控制方法,包括步骤S11~S17。
[0055] 步骤S11,接收所述数据报文。
[0056] 步骤S12,判断所述数据报文是否为最后一个节点的所述安全功能模块发送。
[0057] 步骤S13,当所述数据报文并非为最后一个节点的所述安全功能模块发送的时,为所述数据报文设置超时时间戳。
[0058] 本实施例的WEB应用防火墙拥塞控制方法应用于WEB应用防火墙的转发控制器。客户端向服务器发送的数据报文先进入该转发控制器中,转发控制器把该数据报文逐步分发至各个节点的安全功能模块进行处理。安全功能模块完成数据报文的处理后,将处理完成的数据报文返回至该转发控制器,再由该转发控制器转发至下一节点的安全功能模块。
[0059] 具体实施时,该转发控制器接收到客户端或安全功能模块发送的数据报文后,为该数据报文设置超时时间戳。每个报文设置一个超时时间戳,表明该报文将在该时间超时。设置超时时间戳是为了让转发控制器能方便的计算下游是否有足够的时间处理该报文,或是否有足够的时间执行接下来的动作。
[0060] 以HTTP请求为例,HTTP请求的完成过程,中间涉及TCP的三次握手和HTTP协议报文的传输。当HTTP请求的报文数据进入Web应用防火墙设备后,到达转发控制器,转发控制器针对HTTP请求的各个步骤的单个报文分别设置超时时间戳,或者对完成所有步骤后的完整请求设置超时时间戳。该超时时间戳精度为毫秒级别,由当前时间加上最大处理时间,表明该frame将在该时间超时。
[0061] 步骤S14,根据当前时间以及所述超时时间戳确定所述数据报文的剩余处理时间。
[0062] 步骤S15,判断所述剩余处理时间是否大于或等于需工作的当前节点的所述安全功能模块的报文处理时间,若是,执行步骤S14,否则执行步骤S15。
[0063] 步骤S16,将所述数据报文发送至所述当前节点的所述安全功能模块,以使所述当前节点的所述安全功能模块对所述数据报文进行处理,并返回处理完成的数据报文至所述转发控制器。
[0064] 步骤S17,将下一节点作为需工作的当前节点,并返回步骤S22。
[0065] 该剩余时间即为该超时时间戳减去当前时间。转发控制器通过计算需工作的当前节点的安全功能模块最近成功处理的N个数据报文的平均处理速度,根据该数据报文的超时时间戳,预估当前节点的安全功能模块是否有能力或足够的时间去处理,否则应放弃交给当前节点的安全功能模块,进入下一节点的处理流程。
[0066] 举例来说,该转发控制器接收到客户端发送的数据报文后,该转发控制器为该数据报文设置超时时间戳,并比对剩余时间和第一节点的安全功能模块的报文处理时间,若剩余时间大于或等于该处理时间,说明该第一个节点的安全功能模块有足够的时间去处理该数据报文,则将该数据报文发送至该第一个节点的安全功能模块,该第一个节点的安全功能模块对报文进行处理,并将处理完成的数据报文返回至该转发控制器,由该转发控制器进入下一个节点。若该剩余时间小于第一个节点的安全功能模块的报文处理时间,说明该第一个节点的安全功能模块没有足够的时间去处理该数据报文,则判断该剩余处理时间是否大于或等于第二个节点的安全功能模块的报文处理时间,若是,则将该数据报文发送至第二个节点的安全功能模块进行处理,依次类推,直至最后一个节点的安全功能模块完成数据报文的处理后,直接将处理后的报文数据发送至服务器。
[0067] 可以理解的,各个安全功能模块用于对接收到的所述数据报文进行异常检测处理。安全功能模块内都会有检测规则,安全功能规则命中后,会阻断,报文直至处理结束。规则没命中的是继续往下一个节点的功能模块检测。走完所有功能模块都未命中的数据报文,就发送给服务器了。
[0068] 本实施例依靠WEB应用防火墙自身的代理工作机制,给HTTP请求的每个报文增加超时时间戳,针对时延作出判断是否执行拥塞控制。基于HTTP请求的转发处理,执行每个请求的拥塞控制,解决了早期粗暴的一刀切式拥塞控制的缺点,可以精准控制每个请求的处理能力,确保设备最大化的防护每一个环境应用系统。本实施例可以最大化的利用WEB应用防火墙的处理能力,最大化兼容各类复杂环境,让WEB应用防火墙的价值得到最大利用,极具价值。
[0069] 请参阅图3,为本发明第二实施例中的WEB应用防火墙拥塞控制方法,包括步骤S21~S30。
[0070] 步骤S21,转发控制器接收数据报文;
[0071] 步骤S22,所述转发控制器判断所述数据报文是否为最后一个节点的安全功能模块发送,若否执行步骤S23,若是执行步骤S31。
[0072] 本实施例中的WEB应用防火墙包括转发控制器和多个节点的安全功能模块,如n个。客户端发送至服务器的数据报文先经过该WEB应用防火墙的各个安全功能模块进行检测,安全功能模块内都会有检测规则,安全功能规则命中后,会阻断,报文直至处理结束。规则没命中的,将处理完成的数据报文返回至转发控制器,由转发控制器分发至下一个节点的安全功能模块检测,走完所有功能模块都未命中的报文,就发送给服务器了。
[0073] 转发控制器对安全安全功能模块1至安全功能模块n‑1的过程,其实现原理相同,而对最后一个安全功能模块n的处理过程有些许不同。因此,转发控制器接收到数据报文后,需要判断是否为最后一个节点的安全功能模块发送的。若否,则进入步骤S23,若是执行步骤S31。
[0074] 步骤S23,所述转发控制器为所述数据报文设置超时时间戳,并根据当前时间以及所述超时时间戳确定所述数据报文的剩余处理时间。
[0075] 数据报文进入Web应用防火墙设备后,到达转发控制器,转发控制器设置超时时间戳,表明接下来的安全功能模块处理该数据报文时,将在该时间超时。该转发控制器根据需要工作的当前节点的安全功能模块的处理时间,以及该超时时间戳判断当前节点的安全功能模块是否有足够的时间处理该报文,或是否有足够的时间执行接下来的动作。
[0076] 可以理解的,该转发控制器可以根据历史处理数据计算当前节点的安全功能模块处理数据报文的平均时间,并将计算得到的平均时间作为当前节点的安全功能模块的报文处理时间。该历史处理数据包括当前节点的安全功能模块最近的预设时间段内多个成功处理的数据报文的处理时间。
[0077] 步骤S24,所述转发控制器判断所述剩余处理时间是否大于或等于需工作的当前节点的安全功能模块的报文处理时间,若是执行步骤S25,否则执行步骤S30。
[0078] 步骤S25,所述转发控制器将所述数据报文发送至所述当前节点的所述安全功能模块。
[0079] 当转发控制器判断到该剩余处理时间大于或等于需工作的当前节点的安全功能模块的报文处理时间,则说明该当前节点的安全功能模块有足够的时间来处理该数据报文,则发送该数据报文至该当前节点的安全功能模块。
[0080] 步骤S26,所述当前节点的所述安全功能模块接收所述数据报文,并进行异常检测处理。
[0081] 步骤S27,当所述当前节点的所述安全功能模块检测到所述数据报文存在异常时,发送阻断信号至所述转发控制器。
[0082] 步骤S28,所述转发控制器接收到所述阻断信号后,阻断所述客户端向所述服务器发送的所述数据报文。
[0083] 步骤S29,当所述当前节点的所述安全功能模块检测到所述数据报文不存在异常,且正常处理完成时,发送处理完成的所述数据报文至所述转发控制器,并返回执行步骤S21。
[0084] 当当前节点的安全功能模块检测到该数据报文存在异常时,则发送阻断信号至该转发控制器,该转发控制器阻断该数据报文,若不存在异常,则返回该数据报文至该转发控制器,转发控制器再重新设置超时时间戳,并判断下一节点的安全功能模块是否有足够的时间去处理,若是,则发送至该下一节点的安全功能模块进出处理,依次类推直至最后一个节点的处理模块。
[0085] 步骤S30,所述转发控制器将下一节点作为需工作的当前节点,并返回步骤S22。
[0086] 若转发控制器判断到该剩余处理时间小于需工作的当前节点的安全功能模块的报文处理时间,则说明该当前节点的安全功能模块没有足够的时间来处理该数据报文,则该当前节点的安全功能模块的处理过程被放弃,并将下一节点作为需工作的当前节点,并返回步骤S22。
[0087] 步骤S31,所述转发控制器将所述数据报文发送至服务器。
[0088] 可以理解的,最后一个节点的安全功能模块处理接结束后,将处理完成的报文发送至该转发控制器,同时发送最后一个节点的安全功能模块的处理完成信号至该转发控制器。该转发控制器根据该处理完成信号确定当前接收到的数据报文为最后一个节点的安全功能模块发送的,则直接将该数据报文发送至服务器。
[0089] 进一步的,在本发明的另一实施方式中,当所述当前节点的所述安全功能模块检测到所述数据报文不存在异常,且正常处理完成时,所述处理结果还包括处理完成所述数据报文的处理时间。进一步的,该WEB应用防火墙拥塞控制方法还包括:
[0090] 所述转发控制器实时更新所述安全功能模块的处理时间。
[0091] 该安全功能模块的报文处理时间可以为其最近成功处理的N个报文的平均处理时间。转发控制器接收到安全功能模块发送的处理时间后,实时更新其报文处理时间,保证转发控制器对安全功能模块的处理能力的准确判断。
[0092] 进一步的,在本发明的另一实施方式中,当该当前节点的安全功能模块对该数据报文的异常检测处理响应超时或处理出错时,发送反应超时信号或错误返回码至转发控制器。该转发控制器接收到该当前节点的安全功能模块发送的反应超时信号或错误返回码时,则进入下一个节点的流程,即将下一节点作为需工作的当前节点,并返回步骤S22。
[0093] 进一步的,该WEB应用防火墙拥塞控制方法还包括:
[0094] 所述转发控制器计算该安全功能模块在预设时间内的错误率,并根据该错误率动态的计算可发送窗口,该错误率为该预设时间内该安全功能模块的反应超时次数、错误返回次数和被放弃的次数之和与预设时间内总的数据报文处理次数的比值。该被放弃的次数即为所述安全功能模块在该预设时间内无时间处理数据报文的次数。
[0095] 具体的,当安全功能模块的错误超过可接收的范围,降低其窗口;当窗口不够的时候,错误和超时为0,可扩大其窗口。改变窗口的作用是控制流量转发,当下游压力超过其处理能力时,不再给下游更多的压力,增加正确率与服务质量,减少超时率。
[0096] 请参阅图4,为本发明第三实施例中的WEB应用防火墙,所述WEB应用防火墙包括转发控制器和多个节点的安全功能模块,各个节点的所述安全功能模块用于按照预设的工作顺序处理客户端向服务器发送的数据报文,所述转发控制器包括:
[0097] 接收模块31,用于接收所述数据报文;
[0098] 第一判断模块32,用于判断所述数据报文是否为最后一个节点的所述安全功能模块发送;
[0099] 设置模块33,用于当所述数据报文并非为最后一个节点的所述安全功能模块发送的时,为所述数据报文设置超时时间戳;
[0100] 确定模块34,用于根据当前时间以及所述超时时间戳确定所述数据报文的剩余处理时间;
[0101] 第二判断模块35,用于判断所述剩余处理时间是否大于或等于需工作的当前节点的所述安全功能模块的报文处理时间;
[0102] 发送模块36,用于所述剩余处理时间大于或等于需工作的当前节点的所述安全功能模块的报文处理时间时,将所述数据报文发送至所述当前节点的所述安全功能模块,以使所述当前节点的所述安全功能模块对所述数据报文进行处理,并返回处理完成的数据报文至所述转发控制器;
[0103] 执行模块37,用于所述剩余处理时间小于需工作的当前节点的所述安全功能模块的报文处理时间时,将下一节点作为需工作的当前节点,并返回执行判断所述数据报文并非为最后一个节点的所述安全功能模块发送的步骤。
[0104] 进一步的,上述WEB应用防火墙,还包括:
[0105] 计算模块,用于根据历史处理数据计算当前节点的所述安全功能模块处理数据报文的平均时间,并将计算得到的平均时间作为所述当前节点的所述安全功能模块的报文处理时间,所述历史处理数据包括所述当前节点的所述安全功能模块最近的预设时间段内多个成功处理的数据报文的处理时间。
[0106] 进一步的,上述WEB应用防火墙,还包括:
[0107] 阻断模块,用于当接收到阻断信号时,阻断所述客户端向所述服务器发送的所述数据报文。
[0108] 本发明实施例所提供的WEB应用防火墙,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。
[0109] 需要说明的是,上述各个模块可以是功能模块也可以是程序模块,既可以通过软件来实现,也可以通过硬件来实现。对于通过硬件来实现的模块而言,上述各个模块可以位于同一处理器中;或者上述各个模块还可以按照任意组合的形式分别位于不同的处理器中。
[0110] 另外,结合图1至图2描述的本申请实施例中的WEB应用防火墙拥塞控制方法主要由电子设备来实现。该电子设备例如为控制器、计算机设备、服务器电子设备。
[0111] 图5为根据本申请实施例的电子设备的硬件结构示意图。该电子设备可以包括处理器81以及存储有计算机程序指令的存储器82。
[0112] 具体地,上述处理器81可以包括中央处理器(CPU),或者特定集成电路(Application Specific Integrated Circuit,简称为ASIC),或者可以被配置成实施本申请实施例的一个或多个集成电路。
[0113] 其中,存储器82可以包括用于数据或指令的大容量存储器。举例来说而非限制,存储器82可包括硬盘驱动器(Hard Disk Drive,简称为HDD)、软盘驱动器、固态驱动器(Solid State Drive,简称为SSD)、闪存、光盘、磁光盘、磁带或通用串行总线(Universal Serial Bus,简称为USB)驱动器或者两个或更多个以上这些的组合。在合适的情况下,存储器82可包括可移除或不可移除(或固定)的介质。在合适的情况下,存储器82可在数据处理装置的内部或外部。在特定实施例中,存储器82是非易失性(Non‑Volatile)存储器。在特定实施例中,存储器82包括只读存储器(Read‑Only Memory,简称为ROM)和随机存取存储器(Random Access Memory,简称为RAM)。在合适的情况下,该ROM可以是掩模编程的ROM、可编程ROM(Programmable Read‑Only Memory,简称为PROM)、可擦除PROM(Erasable Programmable Read‑Only Memory,简称为EPROM)、电可擦除PROM(Electrically Erasable Programmable Read‑Only Memory,简称为EEPROM)、电可改写ROM(Electrically Alterable Read‑Only Memory,简称为EAROM)或闪存(FLASH)或者两个或更多个以上这些的组合。在合适的情况下,该RAM可以是静态随机存取存储器(Static Random‑Access Memory,简称为SRAM)或动态随机存取存储器(Dynamic Random Access Memory,简称为DRAM),其中,DRAM可以是快速页模式动态随机存取存储器(Fast Page Mode Dynamic Random Access Memory,简称为FPMDRAM)、扩展数据输出动态随机存取存储器(Extended Date Out Dynamic Random Access Memory,简称为EDODRAM)、同步动态随机存取内存(Synchronous Dynamic Random‑Access Memory,简称SDRAM)等。
[0114] 存储器82可以用来存储或者缓存需要处理和/或通信使用的各种数据文件,以及处理器81所执行的可能的计算机程序指令。
[0115] 处理器81通过读取并执行存储器82中存储的计算机程序指令,以实现上述实施例中的WEB应用防火墙拥塞控制方法。
[0116] 在其中一些实施例中,该数据提供终端和平台还可包括通信接口83和总线80。其中,如图5所示,处理器81、存储器82、通信接口83通过总线80连接并完成相互间的通信。
[0117] 通信接口83用于实现本申请实施例中各模块、装置、单元和/或设备之间的通信。通信接口83还可以实现与其他部件例如:外接设备、图像/数据采集设备、数据库、外部存储以及图像/数据处理工作站等之间进行数据通信。
[0118] 总线80包括硬件、软件或两者,将对应设备的部件彼此耦接在一起。总线80包括但不限于以下至少之一:数据总线(Data Bus)、地址总线(Address Bus)、控制总线(Control Bus)、扩展总线(Expansion Bus)、局部总线(Local Bus)。举例来说而非限制,总线80可包括图形加速接口(Accelerated Graphics Port,简称为AGP)或其他图形总线、增强工业标准架构(Extended Industry Standard Architecture,简称为EISA)总线、前端总线(Front Side Bus,简称为FSB)、超传输(Hyper Transport,简称为HT)互连、工业标准架构(Industry Standard Architecture,简称为ISA)总线、无线带宽(InfiniBand)互连、低引脚数(Low Pin Count,简称为LPC)总线、存储器总线、微信道架构(Micro Channel Architecture,简称为MCA)总线、外围组件互连(Peripheral Component Interconnect,简称为PCI)总线、PCI‑Express(PCI‑X)总线、串行高级技术附件(Serial Advanced Technology Attachment,简称为SATA)总线、视频电子标准协会局部(Video Electronics Standards Association Local Bus,简称为VLB)总线或其他合适的总线或者两个或更多个以上这些的组合。在合适的情况下,总线80可包括一个或多个总线。尽管本申请实施例描述和示出了特定的总线,但本申请考虑任何合适的总线或互连。
[0119] 另外,结合上述实施例中的WEB应用防火墙拥塞控制方法,本申请实施例可提供一种计算机可读存储介质来实现。该计算机可读存储介质上存储有计算机程序指令;该计算机程序指令被处理器执行时实现上述实施例中的任意一种WEB应用防火墙拥塞控制方法。
[0120] 以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0121] 以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。