[发明专利]一种PHP语言Web应用中不可信变量静态检测方法无效
| 申请号: | 201010226460.8 | 申请日: | 2010-07-14 |
| 公开(公告)号: | CN101916340A | 公开(公告)日: | 2010-12-15 |
| 发明(设计)人: | 顾庆;彭树深;陈晓安;陈道蓄 | 申请(专利权)人: | 南京大学 |
| 主分类号: | G06F21/00 | 分类号: | G06F21/00 |
| 代理公司: | 江苏圣典律师事务所 32237 | 代理人: | 黄振华 |
| 地址: | 210093 江苏省*** | 国省代码: | 江苏;32 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 php 语言 web 应用 不可信 变量 静态 检测 方法 | ||
技术领域
本发明涉及Web应用中引发安全问题的不可信变量的静态检测,特别针对广泛用于Web应用编程的PHP语言,通过析取PHP代码结构,采用静态分析的方法快速定位Web应用中可能存在的不可信变量,有效解决弱类型和无类型语言编写的Web应用中不可信变量难以检测的问题。
背景技术
当今,人们越来越多的社会活动通过Web应用完成,如购物、理财、办公和即时通讯等,这要求Web应用具有高可靠性和安全性。Web应用接收的输入数据将直接影响到系统的可靠性和安全性。同来源于本地数据库和文件的输入数据相比,通过用户交互过程由用户输入到Web应用系统中的数据尤其难以控制,容易引发安全性问题和Web应用故障。这类用户输入数据称为不可信数据,而能够接收和携带不可信数据的变量,就是不可信变量。
目前用于检测不可信变量的方法主要包括两大类:基于HTTP协议的动态检测(简称HTTP法),以及基于参数函数PF(ParameterFunction)的静态检测(简称PF法)。HTTP法会在Web应用中加载一个模块,动态记录传送到服务器端的变量<name,value>对。HTTP法与Web应用的实现无关;其缺点是:该方法能够检测到的变量仅限于测试者访问到的变量,如果一些潜藏的不可信变量在测试过程中没有使用,就会给系统留下安全隐患;而潜藏的不可信变量会在不经意的设计和编程过程中出现,也有可能是系统预留的后门。
Web应用中,PF函数用于获取变量的<name,value>对。PF法通过静态检测所有的PF函数查找Web应用中存在的不可信变量。PF法不容易遗漏显式定义的不可信变量,如果Web应用编程遵循所有变量采用显式定义的方式,PF法是有效的。但是目前大量的Web应用中普遍存在一些“技巧”可以通过已有变量的值继续定义新的变量,PHP语言编写的Web应用这种情况十分常见;这样处理可以使程序小巧且功能强大,但问题是如此处理新变量等于绕过了PF函数,从而使PF法失去检测效果。
发明内容
本发明的主要目的是针对PHP语言编写的Web应用中易引发安全问题的不可信变量,提出一种通过析取PHP代码的模块结构,采用静态程序分析来识别功能模块中不可信变量的方法,辅助Web应用开发和维护人员快速检测安全漏洞,该方法相对现有技术实现简单,识别率较高,且具有良好的可扩展性,能有效解决现有方法在弱类型和无类型语言编写的Web应用中难以有效检测不可信变量的问题。
为实现上述目的,本发明采用如下的步骤:
1)识别PHPWeb应用的所有入口文件;
2)由入口文件出发,析取PHP Web应用的每个功能模块的PHP代码,同时避开HTML代码的干扰,通过代码中的包含(include/require)语句采用迭代方法整合所有相关的PHP文件和代码;
3)以整合后的每一个PHPWeb应用的功能模块为单位,采用静态分析的方法识别其中的不可信变量;
4)汇总所有模块的解析结果,每个模块的解析结果都是一个不可信变量的集合,汇总时取各集合的并集并生成报告,报告中对每一个不可信变量都记录其所属的PHP文件和文件中的具体位置。
上述步骤1)的入口文件识别过程为:从Web应用主目录开始,遍历目录下所有文件项构成集合W;针对W中的每一个文件项,如果文件项是目录(文件夹),则遍历该目录下所有文件项并添加到集合W中;如果文件项是一个文件,且是PHP文件,则判定该文件是否具有入口文件特征:如果是入口文件则将其添加到入口文件集合中;否则忽略该文件。遍历和识别所有文件项直到集合W为空,最后得到Web应用的入口文件集合。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京大学,未经南京大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201010226460.8/2.html,转载请声明来源钻瓜专利网。





