一种多层架构下应用关联方法与流程

文档序号:14156726阅读:605来源:国知局

本发明属于数据库安全技术领域,尤其是一种多层架构下应用关联方法。



背景技术:

随着it行业的发展,各业务系统的面临了越来越大的压力挑战,因此主流的软件架构开始向多层次、分布式系统发展。在该场景下的b/s架构应用系统,如何将浏览器请求来源和向数据库发起执行的sql语句进行关联,成为数据库安全产品亟待解决的问题。

应用关联是指将浏览器发起的http请求的请求信息(身份来源和请求内容)和向数据库发起执行的sql语句(最终行为)进行关联。

目前,对于上述应用场景,通常需要应用系统进行改造以实现对于应用关联的支持,现有的关联方法存在应用系统的不稳定且成本较高的问题。



技术实现要素:

本发明的目地在于克服现有技术的不足,提出一种设计合理、高效、稳定、且低成本的多层架构下应用关联方法。

本发明解决其技术问题是采取以下技术方案实现的:

一种多层架构下应用关联方法,包括以下步骤:

步骤1、在web服务器和webservice服务器中分别部署插件,所述插件负责采集客户端请求信息,并向webservice服务器传递客户端请求信息,最终向数据库审计/防护系统发送客户端请求信息;

步骤2、客户端http请求发送到web服务器时,web服务器中的插件从请求变量中取得客户端请求信息,并与当前线程上下文关联;

步骤3、web服务器向webservice服务器发起请求,webservice服务器中的插件获取当前线程上下文中的客户端请求信息;

步骤4、webservice服务器获取到上个节点发起的请求时,从http请求head中读取客户端请求信息,并与当前线程上下文关联;

步骤5、如果存在更多的webservice服务器节点,则重复步骤3和步骤4,否则执行步骤6;

步骤6、webservice服务器向数据库发起请求前,插件获取当前线程上下文中的客户端请求信息,将信息组织为可执行的内容发送到数据库服务器;

步骤7、数据库审计/防护系统分析webservice服务器发送至数据库服务器的内容,得到客户端请求信息并标记后续执行的sql的来源;

步骤8、数据库审计/防护系统根据得到的sql语句的真实客户端来源执行记录或防护行为。

所述web服务器、webservice服务器接收到的请求与向下个节点发送的请求使用同一线程上下文进行数据传递。

所述步骤3中web服务器向webservice服务器发起请求的方法:基于http协议并在发送请求时通过调整head、参数或cookie中的一种或多种内容,在保障逻辑不改变的前提下将客户端请求信息发送至webservice服务器。。

本发明的优点和积极效果是:

本发明在web服务器和webservice服务器中分别部署插件用于采集客户端请求信息,并向数据库审计/防护系统发送客户端请求信息,由数据库审计/防护系统将数据库请求与客户端请求进行关联,能够有效地降低安全审计或防护方案对应用系统的侵入性,在无需对应用系统进行改造的同时保障对数据库访问应用系统用户身份识别的完整性和正确性,显著提高了多层架构下实现应用关联的健壮性、稳定性、可靠性,同时大幅降低了多层架构下实现应用关联的成本,可广泛应用于数据库审计、数据库防火墙、数据库安全网关等数据库安全产品中。

附图说明

图1是本发明的主要模块关系图;

图2是本发明的处理流程示意图。

具体实施方式

以下结合附图对本发明实施例做进一步详述。

一种多层架构下应用关联方法,是在图1所示的多层架构系统下实现的,该系统包括客户端、web服务器(内设有插件a)、多个webservice服务器(多个webservice服务器内分别设有插件b、c等)、数据库服务器和数据库设计/防护系统,数据库设计/防护系统设置在webservice服务器与数据库服务器之间。

本发明中的多层节点间数据传递、客户端请求信息与sql语句关联的原理如下:

1、客户端请求数据传递web/webservice服务器中接收到的请求与向下个节点发送的请求使用同一线程上下文进行数据传递。

2、基于http协议通过调整head、参数或cookie等一种或多种内容实现数据传递。

3、webservice服务器向数据库发送可执行的内容向数据库审计/防护系统实现数据传递,保证客户端请求信息与执行的sql语句串行发送进行关联。

下面以图2为例说明本发明的具体方法,包括如下步骤:

(1)客户端向web服务器发起如下http请求:

http://192.168.1.1/dosomething.do?param=1。

(2)web服务器中插件拦截到(1)中所述请求,并记录下客户端请求信息:包括但不限于客户端ip(192.168.1.2)、登录用户名(user)、请求url(http://192.168.1.1/dosomething.do)、参数等内容;

(3)web服务器中插件将(2)中客户端请求信息设置到线程上下文中;

(4)web服务器向webservice服务器发起业务请求,此时插件从线程上下文中读取(2)中客户端请求信息,修改http请求中的head、cookie或参数中的一种或几种内容,将(2)中客户端请求信息加入至http请求中,并发送业务请求;

(5)webservice服务器中插件拦截到(4)中所述业务请求,并记录下客户端请求信息,并将客户端请求信息设置到线程上下文中;

(6)webservice服务器向数据库发送sql语句前,插件先从线程上下文读取客户端请求信息,并组织为可执行语句select'192.168.1.2'asip,'user'asuser,'http://192.168.1.1/dosomething.do'asurl,'param=1'asparamsfromdual,并执行;

(7)步骤(6)中插件继续执行业务sql语句;

(8)数据库审计/防护系统分别获取到含客户端请求信息的sql语句和业务sql语句,前者中的数据标记了后者sql语句关联的客户端请求信息。

需要强调的是,本发明所述的实施例是说明性的,而不是限定性的,因此本发明包括并不限于具体实施方式中所述的实施例,凡是由本领域技术人员根据本发明的技术方案得出的其他实施方式,同样属于本发明保护的范围。



技术特征:

技术总结
本发明涉及一种多层架构下应用关联方法,其技术特点包括以下步骤:在WEB服务器层获取客户端HTTP请求信息;基于HTTP的WebService标准将客户端请求信息发送至下一级服务器;将客户端请求信息最终发送到数据库审计/防护系统;数据库审计/防护系统将数据库请求与客户端请求进行关联。能够有效地降低安全审计或防护方案对应用系统的侵入性,在无需对应用系统进行改造的同时保障对数据库访问应用系统用户身份识别的完整性和正确性,显著提高了多层架构下实现应用关联的健壮性、稳定性、可靠性,同时大幅降低了多层架构下实现应用关联的成本,可广泛应用于数据库审计、数据库防火墙、数据库安全网关等数据库安全产品中。

技术研发人员:杨海峰;陈立
受保护的技术使用者:北京安华金和科技有限公司
技术研发日:2017.11.29
技术公布日:2018.04.13
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1