基于PHP扩展PDO实现应用访问和数据库访问行为关联的方法技术

技术编号:29400720 阅读:13 留言:0更新日期:2021-07-23 22:38
本发明专利技术公开了基于PHP扩展PDO实现应用访问和数据库访问行为关联的方法,涉及web开发技术领域,该方法包括将原PDO扩展提供PHP访问的类的名称PDO修改为HOOK_PDO;在PHP源码级别自定一个类的名称为PDO,继承HOOK_PDO类,在自定的PDO类里实现读取操作应用的用户,通过SQL注释的方式在原SQL中加入用户信息,将增加注释后SQL发送给数据库审计与防护系统;数据库审计与防护系统解析带注释的SQL,记录用户和SQL关联信息并访问数据库并返回数据给PHP应用程序。这样的方法,将用户信息和SQL两者关联起来后发送给中数据库审计与防护系统进行操作和访问溯源。在PHP应用源码不改变的情况下,更高效,更快捷的实现PHP应用访问和数据库访问关联,进行访问溯源和基于系统用户的访问控制。

【技术实现步骤摘要】
基于PHP扩展PDO实现应用访问和数据库访问行为关联的方法
本专利技术涉及web开发
,具体而言,涉及基于PHP扩展PDO实现应用访问和数据库访问行为关联的方法。
技术介绍
PHP(PHP:HypertextPreprocessor,超文本预处理器)是一种通用开源脚本语言,吸收了C语言、Java和Perl的特点,利于学习,使用广泛,主要适用于Web开发领域。PDO扩展为PHP访问数据库定义了一个轻量级的、一致性的接口,它提供了一个数据访问抽象层,这样,无论使用什么数据库,都可以通过一致的函数执行查询和获取数据。而在实际应用中,能够实现PHP应用访问和数据库访问关联的步骤较复杂,通常需要改变PHP应用源码。
技术实现思路
为了克服上述问题或者至少部分地解决上述问题,本专利技术实施例提供基于PHP扩展PDO实现应用访问和数据库访问行为关联的方法,在PHP应用源码不改变的情况下,更高效,更快捷的实现PHP应用访问和数据库访问关联。本专利技术的实施例是这样实现的:基于PHP扩展PDO实现应用访问和数据库访问行为关联的方法,包括以下步骤:修改PHP扩展PDO源码得到修改后的PDO扩展,修改后的PDO扩展将原PDO扩展提供PHP访问的类的名称PDO修改为HOOK_PDO;在PHP源码级别自定一个类的名称为PDO,继承HOOK_PDO类,在自定的PDO类里实现读取操作应用的用户,通过SQL注释的方式在原SQL中加入用户信息,将增加注释后SQL发送给数据库审计与防护系统;数据库审计与防护系统解析带注释的SQL,记录用户和SQL关联信息;数据库审计与防护系统根据用户和SQL关联信息访问数据库并返回数据给PHP应用程序。这样的方法,在每台应用服务器重新编译定制的PHP扩展PDO,利用定制的PDO扩展来获取用户信息,将用户信息和SQL两者关联起来后发送给中数据库审计与防护系统进行操作和访问溯源。在PHP应用源码不改变的情况下,更高效,更快捷的实现PHP应用访问和数据库访问关联,进行访问溯源和基于系统用户的访问控制。在本专利技术的一些实施例中,所述修改后的PDO扩展将原PDO扩展提供PHP访问的类的名称PDO修改为HOOK_PDO的步骤包括:php主程序调用INIT_CLASS_ENTRY(ce,“HOOK_PDO”,pdo_dbh_functions)函数发送至修改后的PDO扩展进行HOOK_PDO类注册,修改后的PDO扩展将HOOK_PDO类注册成功的信息返回至php主程序。在本专利技术的一些实施例中,所述在PHP源码级别自定一个类的名称为PDO,继承HOOK_PDO类的步骤包括:php主程序调用pdo驱动的PHP_MINIT方法并发送至pdo驱动,pdo驱动调用php_pdo_register_driver注册自己,修改后的PDO扩展将pdo驱动注册成功的信息依次发送回PDO驱动及php主程序。在本专利技术的一些实施例中,所述PDO类里实现读取操作应用的用户,通过SQL注释的方式在原SQL中加入用户信息,将增加注释后SQL发送给数据库审计与防护系统的步骤包括:php主程序响应用户的访问操作后调用PHP_RINIT方法发送至修改后的PDO扩展进行PDO类注册,修改后的PDO扩展将PDO类注册成功的信息返回至php主程序;PHP应用程序响应php主程序访问并根据其配置的数据库类型、IP、端口、库获取pdo驱动发送至修改后的PDO扩展,修改后的PDO扩展返回PDO对象给PHP应用程序;PHP应用程序执行SQL发送至修改后的PDO扩展,修改后的PDO扩展以注释的方式将用户的信息加入到SQL并发送SQL请求至数据库审计与防护系统。在本专利技术的一些实施例中,所述数据库审计与防护系统解析带注释的SQL,记录用户和SQL关联信息的步骤包括:数据库审计与防护系统接受并解析带注释的SQL并依据解析出的SQL和用户信息以及策略信息,将用户访问行为和数据库访问行为关联,进行基于用户的访问控制。在本专利技术的一些实施例中,所述数据库审计与防护系统根据用户和SQL关联信息访问数据库并返回数据给PHP应用程序的步骤包括:数据库审计与防护系统把用户和SQL关联信息发送至数据库获取对应数据并返回对应数据给PHP应用程序。在本专利技术的一些实施例中,还包括将对应数据依次返回给数据库审计与防护系统、修改后的PDO扩展、pdo驱动、PHP应用程序、php主程序。在本专利技术的一些实施例中,所述SQL注释的方式采用单行注释。在本专利技术的一些实施例中,所述SQL注释的方式采用多行注释。在本专利技术的一些实施例中,所述数据库包括Cubrid、FreeTDS、MicrosoftSQLServer、Sybase、Firebird、IBMDB2、IBMInformixDynamicServer、Mysql、Oracle、PostgreSQL、SQLite、SQLAzure。本专利技术实施例至少具有如下优点或有益效果:基于PHP扩展PDO实现应用访问和数据库访问行为关联的方法,包括以下步骤:修改PHP扩展PDO源码得到修改后的PDO扩展,修改后的PDO扩展将原PDO扩展提供PHP访问的类的名称PDO修改为HOOK_PDO;在PHP源码级别自定一个类的名称为PDO,继承HOOK_PDO类,在自定的PDO类里实现读取操作应用的用户,通过SQL注释的方式在原SQL中加入用户信息,将增加注释后SQL发送给数据库审计与防护系统;数据库审计与防护系统解析带注释的SQL,记录用户和SQL关联信息;数据库审计与防护系统根据用户和SQL关联信息访问数据库并返回数据给PHP应用程序。这样的方法,在原有的PHP应用服务器部署定制PDO扩展的PHP便在应用中配置应用获取用户信息的实现类名称及方法名称;PDO驱动收到SQL时,通过读取类名称和方法名,调用方法获取用户信息,将用户信息以注释的形式与SQL进行绑定;PDO驱动调用原生的PDO驱动,将绑定有用户信息的SQL传给原生PDO驱动;数据库审计与防护系统收到SQL信息后,从SQL信息中解析出用户信息;数据库审计与防护系统依据解析出的SQL和用户信息以及策略信息,将用户访问行为和数据库访问行为关联,进行基于用户的访问控制。这样,在每台应用服务器重新编译定制的PHP扩展PDO,利用定制的PDO扩展来获取用户信息,将用户信息和SQL两者关联起来后发送给中数据库审计与防护系统进行操作和访问溯源。在PHP应用源码不改变的情况下,更高效,更快捷的实现PHP应用访问和数据库访问关联,进行访问溯源和基于系统用户的访问控制。附图说明为了更清楚地说明本专利技术实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本专利技术的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。图1为本专利技术基于PHP扩展PDO实现应本文档来自技高网...

【技术保护点】
1.基于PHP扩展PDO实现应用访问和数据库访问行为关联的方法,其特征在于,包括以下步骤:/n修改PHP扩展PDO源码得到修改后的PDO扩展,修改后的PDO扩展将原PDO扩展提供PHP访问的类的名称PDO修改为HOOK_PDO;/n在PHP源码级别自定一个类的名称为PDO,继承HOOK_PDO类,在自定的PDO类里实现读取操作应用的用户,通过SQL注释的方式在原SQL中加入用户信息,将增加注释后SQL发送给数据库审计与防护系统;/n数据库审计与防护系统解析带注释的SQL,记录用户和SQL关联信息;/n数据库审计与防护系统根据用户和SQL关联信息访问数据库并返回数据给PHP应用程序。/n

【技术特征摘要】
1.基于PHP扩展PDO实现应用访问和数据库访问行为关联的方法,其特征在于,包括以下步骤:
修改PHP扩展PDO源码得到修改后的PDO扩展,修改后的PDO扩展将原PDO扩展提供PHP访问的类的名称PDO修改为HOOK_PDO;
在PHP源码级别自定一个类的名称为PDO,继承HOOK_PDO类,在自定的PDO类里实现读取操作应用的用户,通过SQL注释的方式在原SQL中加入用户信息,将增加注释后SQL发送给数据库审计与防护系统;
数据库审计与防护系统解析带注释的SQL,记录用户和SQL关联信息;
数据库审计与防护系统根据用户和SQL关联信息访问数据库并返回数据给PHP应用程序。


2.根据权利要求1所述的基于PHP扩展PDO实现应用访问和数据库访问行为关联的方法,其特征在于,所述修改后的PDO扩展将原PDO扩展提供PHP访问的类的名称PDO修改为HOOK_PDO的步骤包括:
php主程序调用INIT_CLASS_ENTRY(ce,“HOOK_PDO”,pdo_dbh_functions)函数发送至修改后的PDO扩展进行HOOK_PDO类注册,修改后的PDO扩展将HOOK_PDO类注册成功的信息返回至php主程序。


3.根据权利要求2所述的基于PHP扩展PDO实现应用访问和数据库访问行为关联的方法,其特征在于,所述在PHP源码级别自定一个类的名称为PDO,继承HOOK_PDO类的步骤包括:
php主程序调用pdo驱动的PHP_MINIT方法并发送至pdo驱动,pdo驱动调用php_pdo_register_driver注册自己,修改后的PDO扩展将pdo驱动注册成功的信息依次发送回PDO驱动及php主程序。


4.根据权利要求3所述的基于PHP扩展PDO实现应用访问和数据库访问行为关联的方法,其特征在于,所述PDO类里实现读取操作应用的用户,通过SQL注释的方式在原SQL中加入用户信息,将增加注释后SQL发送给数据库审计与防护系统的步骤包括:
php主程序响应用户的访问操作后调用PHP_RINIT方法发送至修改后的PDO扩展进行PDO类注册,修改后的PDO扩展将PDO类注册成功的信息返回至php主...

【专利技术属性】
技术研发人员:唐更新汪大鹏宋辉王锋赵卫国
申请(专利权)人:北京中安星云软件技术有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1