[发明专利]一种PHP版的OpenRASP完整请求响应数据捕获方法在审
申请号: | 202310398125.3 | 申请日: | 2023-04-14 |
公开(公告)号: | CN116431198A | 公开(公告)日: | 2023-07-14 |
发明(设计)人: | 刘海波;李和激;沈晶;史长亭;于爱民;白鑫;马建刚 | 申请(专利权)人: | 哈尔滨工程大学 |
主分类号: | G06F8/71 | 分类号: | G06F8/71;G06F8/65;G06F16/242;G06F21/64 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 150001 黑龙江*** | 国省代码: | 黑龙江;23 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 php openrasp 完整 请求 响应 数据 捕获 方法 | ||
1.一种PHP版的OpenRASP完整请求响应数据捕获方法,其特征在于:具体步骤如下:
步骤1:在V8Material类中添加fill_json方法,参数为JsonReader类,把当前类中的属性写入到传入的JSON类中;
步骤2:对HOOK点所用到所有实体,在继承自V8Material类的子类中重写fill_json方法,并由用户自定义相关格式,将当前检测实体中的信息放入JsonReader类中;
步骤3:创建Response类去存储PHP请求的响应数据,并且创建Session类去存储请求的所有信息,修改Parameter类,增加保存请求的GET与POST参数属性并在openrasp.cc文件中的扩展启动类中为其赋值;在Response类中使用Map数据结构存储请求的响应头,用JsonReader存储请求的其他响应信息,包括MySQL数据或者文件操作记录;在Session类,为保证PHP在记录访问日志的时候通过各个阶段获取的日志同属一个请求,通过Map存储请求和响应的数据,Map的键为线程ID;
步骤4:修改JsonReader类,加入将数据库中的列表数据写入当前类的write_sql_result方法;创建全局Session类,将该Session类放入PHP的全局变量中,使任意函数在任意位置均可访问;
步骤5:分析HOOK文件中针对PHP各个函数的拦截函数中的V8Material类的子类实体,当这些实体创建完成并且其中所需属性均已被赋值后,通过全局Session类将该类中的属性保存到当前线程的Response中的JsonReader类;其中获取MySQL的查询数据需要在PHP的数据库查询相关的函数的后置HOOK函数中解析获取数据库的数据,并在获取到数据库数据后恢复修改过的数据,获取过程主要通过调用PHP的相关函数实现;
步骤6:在openrasp_log.cc日志文件中自定义的日志指定文件夹和文件名,自定通过日期生成不同的日志文件,同时在该类的扩展关闭函数中将日志输出到指定的文件中,在打印之前需要获取Response的响应头信息,请求即将完成,响应头生成。
2.根据权利要求1所述的一种PHP版的OpenRASP完整请求响应数据捕获方法,其特征在于:所述每一步骤均保存每次PHP请求的所有数据。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于哈尔滨工程大学,未经哈尔滨工程大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202310398125.3/1.html,转载请声明来源钻瓜专利网。