CN101783796A - Web应用防火墙系统和基于该系统的应用方法 - Google Patents
Web应用防火墙系统和基于该系统的应用方法 Download PDFInfo
- Publication number
- CN101783796A CN101783796A CN200910261282A CN200910261282A CN101783796A CN 101783796 A CN101783796 A CN 101783796A CN 200910261282 A CN200910261282 A CN 200910261282A CN 200910261282 A CN200910261282 A CN 200910261282A CN 101783796 A CN101783796 A CN 101783796A
- Authority
- CN
- China
- Prior art keywords
- unified
- data
- interface
- function
- plus
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种Web应用防火墙系统,包括由底向上依次设置的可移植层、验证容器层、接口转化层和过滤器层,其中:所述过滤层,用于为不同规范服务器的提供统一接口,在所述统一接口中解析超文本传输协议请求和超文本传输协议响应,从所述超文本传输协议请求和超文本传输协议响应中取出需要过滤的数据,将其解析为统一结构,并通过与之相对应的函数进行传输;所述接口转化层,用于将所述需要过滤的数据的程序设计语言统一为C++语言;所述验证容器层,用于验证通过所述函数进行传输的数据;所述可移植层,用于在所述过滤层、接口转化层和验证容器层工作过程中,屏蔽不同操作系统的差异。
Description
技术领域
本发明涉及网络技术领域和安全领域,更具体地说,涉及一种Web应用防火墙系统和基于该系统的应用方法。
背景技术
在基于服务器或应用服务器的网络应用中,需要对部署在所述服务器上的网络进行安全加固,为了在所述服务器受到黑客攻击时,能够保证其安全、可靠的运行。
而Web应用防火墙就是为保证应用服务器不受不法访问和恶意攻击的安全设备。目前的Web应用应用防火墙技术是根据不同服务器规范进行开发的,具体的,是根据IIS、Apache或Servlet规范对不同服务器的过滤功能进行开发。但是,上述的三种规范的实现机制存在很大差别。其中,IIS规范是指使用C++语言实现的isapi筛选器和extend扩展服务;Apache规范是指使用C语言实现的挂钩函数和输入输出过滤器;Servlet规范是指使用java语言实现的servlet.filter接口。因为现有的应用Web应用防火墙技术不能适应不同规范的实现机制的服务器,则不同的服务器要分别进行研究,这样,就会在很大程度上增加服务器开发的难度,延长开发的时间。
发明内容
有鉴于此,本发明提供一种Web应用防火墙系统,以解决现有Web应用防火墙技术不能适用不同规范的实现机制的服务器,导致不同服务器均要进行研究,进而造成服务器的开发难度大、时间长的问题。
所述Web应用防火墙系统,包括由底向上依次设置的可移植层、可移植层、接口转化层和过滤器层,其中:
所述过滤层,用于为不同规范服务器的提供统一接口,在所述统一接口中解析超文本传输协议请求和超文本传输协议响应,从所述超文本传输协议请求和超文本传输协议响应中取出需要过滤的数据,将其解析为统一结构,并通过与之相对应的函数进行传输;
所述接口转化层,用于将所述需要过滤的数据的实现语言统一为C++语言;
所述验证容器层,用于验证通过所述函数进行传输的数据;
所述可移植层,用于在所述过滤层、接口转化层和验证容器层工作过程中,屏蔽不同操作系统的差异。
优选地,还包括使用C++语言实现所述统一结构的扩展接口,用于通过所述系统的配置文件加载根据所述扩展接口编译的动态库。
优选地,所述统一的数据结构为PIW_Checker_Infor结构,所述与之相对应的函数为IWChecker()函数。
所述基于Web应用防火墙系统的应用方法,其特征在于,包括:
生成不同规范服务器的统一接口;
在所述不同规范服务器的统一接口中,解析超文本传输协议请求和超文本传输协议响应,从所述超文本传输协议请求和超文本传输协议响应中取出需要过滤的数据;
将所述过滤的数据的实现语言统一为C++语言;
将所述统一实现语言后的数据解析为统一结构,并通过与所述统一结构相对应的函数进行传输;
验证所述函数传输的数据;
其中,在上述过程中,分别进行屏蔽不同操作系统的差异操作。
优选地,当需要进行扩展所述系统的功能时,该方法还包括:
使用C++语言生成所述统一结构的扩展接口;
通过所述扩展接口编译动态库;
通过所述系统的配置文件加载所述动态库。
优选地,验证所述函数传输的数据结束后,该方法还包括:
销毁所述函数传输的数据。
从上述的技术方案可以看出,本发明提供的Web应用防火墙系统采用分层结构设计,通过所述过滤器层,将IIS、Apache以及Servlet三种不同规范的服务器中的数据统一为同一种数据结构,这样,就不需要分别对不同的服务器进行研究,解决了现有Web应用防火墙技术因不能适用不同规范的实现机制的服务器,导致不同服务器均要进行研究进而造成的服务器开发难度大、时间长的问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例公开的一种Web应用防火墙系统的示意图;
图2为本发明另一实施例公开的一种Web应用防火墙系统的示意图;
图3为本发明实施例公开的一种基于Web应用防火墙系统的应用方法的流程图;
图4为本发明实施例公开的扩展所述系统的功能的方法流程图;
图5为为本发明实施例公开的一种Web应用防火墙系统的工作流程图;
图6为本发明实施例公开的一种Web应用防火墙系统初始化过程的流程图;
图7为本发明实施例公开的一种Web应用防火墙系统验证服务器信息的流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例公开了一种网络应用防火墙系统,以解决现有的防火墙技术开发时难度大、时间长的问题。
如图1所示,所述Web应用防火墙系统,包括:底向上依次设置的可移植层1、验证容器层2、接口转化层3和过滤器层4,并且,过滤器层4,用于为不同规范服务器的提供统一接口,在所述统一接口中解析超文本传输协议请求和超文本传输协议响应,从所述超文本传输协议请求和超文本传输协议响应中取出需要过滤的数据,将其解析为统一结构,并通过与之相对应的函数进行传输;接口转化层3,用于将所述需要过滤的数据的实现语言统一为C++语言;验证容器层2,用于验证通过所述函数进行传输的数据;可移植层1,用于在过滤器层4、接口转化层3和验证容器层2工作过程中,通过不同的实现文件和条件编译的方式来屏蔽差异。
具体的,验证容器层2由验证模块和容器模块组成,可移植层1、接口转化层3和过滤器层4分别多个模块组成,其中,所述容器模块用于接收传输到验证容器层2的数据,并将其传输到所述验证模块,所述验证进行所述数据的验证工作;所述统一的数据结构为PIW_Checker_Infor结构,所述与之相对应的函数为IWChecker()函数。
本发明实施例提供的Web应用防火墙系统不仅可以适应于不同的服务器,还可以适应于不同的操作系统,因为:可移植层1封装了与操作系统的调用,提供统一的接口,进而起到屏蔽操作系统差异目的。更重要的是,Web应用防火墙系统可以通过接口转化层3,将C语言和C++语言统一为C++语言,又由于使用Java的JNI技术可以将Java统一为C++语言,如此一来,实现了语言的统一。
所述Web应用防火墙系统,如图2所示,还包括使用C++语言实现的所述不同服务器统一结构,即PIW_Checker_Infor结构的扩展接口5,用于通过所述系统的配置文件加载根据扩展接口5编译的动态库,并且,对所述系统原来的代码不用任何修改,降低了回归测试的粒度,利于程序的稳定。
本发明实施例还公开了一种基于Web应用防火墙系统的应用方法,如图3所示,包括:
步骤S1、生成不同规范服务器的统一接口;
步骤S2、在所述不同规范服务器的统一接口中,解析超文本传输协议请求和超文本传输协议响应,从所述超文本传输协议请求和超文本传输协议响应中取出需要过滤的数据;
步骤S3、将所述过滤的数据的实现语言统一为C++语言;
步骤S4、将所述统一实现语言后的数据解析为统一结构,并通过与所述统一结构相对应的函数进行传输;
步骤S5、验证所述函数传输的数据;
其中,在上述步骤中,分别进行屏蔽不同操作系统的差异操作。
当步骤S5结束后,执行步骤S6、销毁所述函数传输的数据,具体为:过滤器层4通过接口转化层3调用验证容器层2的销毁接口,销毁传送于验证容器层的数据。
当对所述系统进行二次开发时,由于所述系统统一了实现语言,可以使用C++语言进行扩展操作。具体的,如图4所示,所述方法还包括:
步骤S7、可以使用C++语言生成PIW_Checker_Infor结构的扩展接口;
步骤S8、通过所述扩展接口编译动态库;
步骤S9、通过所述系统的配置文件加载所述动态库。
为了充分说明本发明实施例公开的Web应用防火墙系统的具体工作流程,以下通过一个实施例说明所述Web应用防火墙系统的工作过程,如图5所示,所述Web应用防火墙系统的工作过程包括:
步骤S11、初始化所述Web应用防火墙系统;
步骤S12、初始化结束后,所述Web应用防火墙系统开始验证服务器的请求信息。
其中,如图6所示,步骤S11包括:
步骤S111、启动热部署线程;
热部署线程是指:当修改了配置文件之后,系统可自动加载系统中的各个模块,并重新初始化。所述Web应用防火墙系统为了实现热部署功能,启动专门的线程来检测配置的变化,一旦配置有变化,就立刻重新初始化配置参数,重新加载各个模块。
步骤S112、判断所述配置是否发生变化,若判断结果为未发生变化,则进入步骤S113、读取所述配置的信息;若判断结果为所述配置发生变化,重新进入初始化过程;
步骤S114、读取所述配置信息后,判断所述Web应用防火墙系统内存中是否加载了验证模块;
若判断结果为未加载时,则进入步骤S115、判断所述Web应用防火墙系统的扩展接口是否正确;若判断结果为已经加载时,则直接进入步骤S118;
若判断所述Web应用防火墙系统的扩展接口结果为正确时,进入步骤S116、加载所述Web应用防火墙系统的验证模块到模块链表中;若判断结果为不正确时,则进行步骤S117、卸载所述Web应用防火墙系统内存中的验证模块;
然后进入步骤S118、判断是否退出程序;若退出,则进入步骤S119、卸载所述Web应用防火墙系统模块链上的模块;若不退出,则重新进入步骤S112。
如图7所示,步骤S12包括:
步骤S121、获取服务器的请求信息;
利用过滤器层的机制,获取服务器的请求信息,同时屏蔽各个服务器对所述Web应用防火墙系统各层模块的影响。
步骤S122、解析所述服务器的请求信息为数据结构;
对获取服务器的请求信息,即HTTP请求,进行分析,取出所有要验证的信息,并将解析后的数据组装成统一的数据结构。
步骤S123、根据所述Web应用防火墙系统模块链中记录的信息,调用所述数据结构中的数据;
根据模块链表中记录的信息,通过函数调用的方式,将步骤S122中组装数据的指针传送给所述Web应用防火墙系统各层模块,便于每个模块进行各自的处理。
步骤S124、根据所述模块的返回结果进行处理。
具体的,所述模块的返回结果包括:终止响应请求、重定向页面、修改内容后响应和正常响应请求。对模块的返回结果的处理顺序为:终止响应请求优先,重定向页面次之,修改内容后响应再次之,最后为正常响应请求。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (6)
1.一种网络应用防火墙系统,其特征在于,包括由底向上依次设置的可移植层、验证容器层、接口转化层和过滤器层,其中:
所述过滤层,用于为不同规范服务器的提供统一接口,在所述统一接口中解析超文本传输协议请求和超文本传输协议响应,从所述超文本传输协议请求和超文本传输协议响应中取出需要过滤的数据,将其解析为统一结构,并通过与之相对应的函数进行传输;
所述接口转化层,用于将所述需要过滤的数据的实现语言统一为C++语言;
所述验证容器层,用于验证通过所述函数进行传输的数据;
所述可移植层,用于在所述过滤层、接口转化层和验证容器层工作过程中,屏蔽不同操作系统的差异。
2.根据权利要求1所述的系统,其特征在于,还包括使用C++语言实现所述统一结构的扩展接口,用于通过所述系统的配置文件加载根据所述扩展接口编译的动态库。
3.根据权利要求1或2所述的系统,其特征在于,所述统一的数据结构为PIW_Checker_Infor结构,所述与之相对应的函数为IWChecker()函数。
4.一种基于网络应用防火墙系统的应用方法,其特征在于,包括:
生成不同规范服务器的统一接口;
在所述不同规范服务器的统一接口中,解析超文本传输协议请求和超文本传输协议响应,从所述超文本传输协议请求和超文本传输协议响应中取出需要过滤的数据;
将所述过滤的数据的实现语言统一为C++语言;
将所述统一实现语言后的数据解析为统一结构,并通过与所述统一结构相对应的函数进行传输;
验证所述函数传输的数据;
其中,在上述过程中,分别进行屏蔽不同操作系统的差异操作。
5.根据权利要求4所述的方法,其特征在于,当需要进行扩展所述系统的功能时,该方法还包括:
使用C++语言生成所述统一结构的扩展接口;
通过所述扩展接口编译动态库;
通过所述系统的配置文件加载所述动态库。
6.根据权利要求4或5所述的方法,其特征在于,验证所述函数传输的数据结束后,还包括:
销毁所述函数传输的数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200910261282 CN101783796B (zh) | 2009-12-28 | 2009-12-28 | Web应用防火墙系统和基于该系统的应用方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200910261282 CN101783796B (zh) | 2009-12-28 | 2009-12-28 | Web应用防火墙系统和基于该系统的应用方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101783796A true CN101783796A (zh) | 2010-07-21 |
CN101783796B CN101783796B (zh) | 2013-09-11 |
Family
ID=42523615
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200910261282 Active CN101783796B (zh) | 2009-12-28 | 2009-12-28 | Web应用防火墙系统和基于该系统的应用方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101783796B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105577654A (zh) * | 2015-12-18 | 2016-05-11 | 浪潮集团有限公司 | 一种linux动态防火墙管理方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1511283A (zh) * | 2001-03-01 | 2004-07-07 | �Ҵ���˾ | 用于连接不同对象类型的服务器和客户机的方法和网桥 |
CN1574839A (zh) * | 2003-06-06 | 2005-02-02 | 微软公司 | 多层防火墙结构 |
US20060294194A1 (en) * | 2005-06-23 | 2006-12-28 | Marc Graveline | Access control list checking |
-
2009
- 2009-12-28 CN CN 200910261282 patent/CN101783796B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1511283A (zh) * | 2001-03-01 | 2004-07-07 | �Ҵ���˾ | 用于连接不同对象类型的服务器和客户机的方法和网桥 |
CN1574839A (zh) * | 2003-06-06 | 2005-02-02 | 微软公司 | 多层防火墙结构 |
US20060294194A1 (en) * | 2005-06-23 | 2006-12-28 | Marc Graveline | Access control list checking |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105577654A (zh) * | 2015-12-18 | 2016-05-11 | 浪潮集团有限公司 | 一种linux动态防火墙管理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101783796B (zh) | 2013-09-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107317730B (zh) | 用于监控区块链节点状态的方法、设备和系统 | |
US10636084B2 (en) | Methods and systems for implementing on-line financial institution services via a single platform | |
CN106156186B (zh) | 一种数据模型管理装置、服务器及数据处理方法 | |
CN104821954B (zh) | 一种跨平台远程过程调用方法 | |
CN110874236B (zh) | 一种跨平台应用装置、终端及存储介质 | |
CN102323884B (zh) | 一种多Web服务发布的方法及Web服务装置 | |
CN103023894B (zh) | 一种进行网上银行登录的方法和浏览器 | |
CN102037677B (zh) | 计算机可读介质、北向接口统一平台及其启动方法 | |
CN110580154A (zh) | 基于h5接入方式的接入方法及其接入组件和移动终端 | |
CN107273748A (zh) | 一种基于漏洞poc实现安卓系统漏洞检测的方法 | |
CN113434158B (zh) | 一种大数据组件的自定义管理方法、装置、设备及介质 | |
CN105843653A (zh) | 一种安全应用配置方法及装置 | |
WO2017041499A1 (zh) | 一种软件升级方法、系统和计算机可读存储介质 | |
Sadjadi et al. | Transparent shaping of existing software to support pervasive and autonomic computing | |
CN105094921A (zh) | 一种跨浏览器调用外设的方法及装置 | |
CN103023976A (zh) | 一种浏览器应用插件扩展的装置和方法 | |
CN109672553A (zh) | 网关动态配置方法、系统、计算机设备及存储介质 | |
CN103368927A (zh) | 一种安全配置核查设备和方法 | |
CN112114896A (zh) | 一种插件框架及业务功能扩展的方法 | |
KR100984639B1 (ko) | 보안검수 자동화 시스템 및 방법 | |
CN101783796B (zh) | Web应用防火墙系统和基于该系统的应用方法 | |
CN105677424A (zh) | 一种基于微内核的组件化开发集成的热加载方法 | |
CN116561743A (zh) | 业务流程的管理方法、装置、存储介质及电子设备 | |
CN116009984A (zh) | 安全编排与自动化响应处理方法、装置及电子设备 | |
CN102594587A (zh) | 嵌入式web调测维护方法及调测维护系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |