[发明专利]一种PHP语言Web应用中不可信变量静态检测方法无效

专利信息
申请号: 201010226460.8 申请日: 2010-07-14
公开(公告)号: CN101916340A 公开(公告)日: 2010-12-15
发明(设计)人: 顾庆;彭树深;陈晓安;陈道蓄 申请(专利权)人: 南京大学
主分类号: G06F21/00 分类号: G06F21/00
代理公司: 江苏圣典律师事务所 32237 代理人: 黄振华
地址: 210093 江苏省*** 国省代码: 江苏;32
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 php 语言 web 应用 不可信 变量 静态 检测 方法
【权利要求书】:

1.一种PHP语言Web应用中不可信变量的静态检测方法,其特征在于包括以下步骤:

1)识别PHP Web应用的所有入口文件;

2)由入口文件出发,析取PHP Web应用的每个功能模块的PHP代码,同时避开HTML代码的干扰,通过代码中的包含(include/require)语句采用迭代方法整合所有相关的PHP文件和代码;

3)以整合后的每一个PHP Web应用的功能模块为单位,采用静态分析的方法识别其中的不可信变量;

4)汇总所有模块的解析结果,每个模块的解析结果都是一个不可信变量的集合,汇总时取各集合的并集并生成报告,报告中对每一个不可信变量都记录其所属的PHP文件和文件中的具体位置。

2.根据权利要求1所述的PHP语言Web应用中不可信变量的静态检测方法,其特征在于步骤1)的入口文件识别过程为:从Web应用主目录开始,遍历目录下所有文件项构成集合W;针对W中的每一个文件项,如果文件项是目录,则遍历该目录下所有文件项并添加到集合W中;如果文件项是一个文件,且是PHP文件,则判定该文件是否具有入口文件特征:如果是入口文件则将其添加到入口文件集合中;否则忽略该文件。遍历和识别所有文件项直到集合W为空,最后得到Web应用的入口文件集合。

3.根据权利要求1或2所述的PHP语言Web应用中不可信变量的静态检测方法,其特征在于步骤2)的功能模块整合过程为:针对一个入口文件f,首先获取其中的PHP代码构成代码集Cf;然后初始化文件集合I,用于记录已包含的文件;接下来获取代码集Cf中的所有包含语句并组成集合S;针对集合S中的每一条包含语句s,首先确定语句s中引用的文件is;如果引用的文件is没有出现在初始化文件集合I中,或者包含指令不是一次包含,则读入文件is,析取其中的PHP代码,用以替换代码集Cf中包含语句s的出现位置;接下来将文件is记录入集合初始化文件I,并将其PHP代码中可能出现的包含语句再添加到集合S中;如果语句s是一次包含,且文件is已在初始化文件集合I中,则语句s被忽略,代码集Cf中对应位置替换为空串;按此循环直到集合S中所有的包含语句都被处理且不再有新的包含语句加入;处理完毕后得到整合后的代码集Cf代表一个完整的功能模块。

4.根据权利要求3所述的PHP语言Web应用中不可信变量的静态检测方法,其特征在于步骤3)的不可信变量的识别过程为:首先将所有变量归为三种类型:类变量(class_var)、已定义变量(defined_var)、以及不可信变量(untrusted_var),然后基于整合后的每一个PHP Web应用的功能模块,每次析取代码集Cf中的三个词,根据对词的语义识别确定该代码集(功能模块)中的不可信变量。

5.根据权利要求4所述的PHP语言Web应用中不可信变量的静态检测方法,其特征在于词的语义识别及不可信变量的确定分成5种情况,包括:

情况1.“$”标示的变量名,说明是一个变量;

情况2.“new”运算符,紧跟其后的词是一个类变量(class_var);

情况3.由“(”符号标示的函数名,说明是一个函数调用,则进入函数体获取所有全局性变量;

情况4.由引号括起的字符串,则在字符串中获取所有全局性变量;

情况5.“list”关键字,将其中出现的所有变量视为已定义变量;

其中,对于情况1、3和4,确定是否为不可信变量的步骤是:如果该变量是第一次出现,且为定义性出现,则变量是已定义变量(defined_var),置入已定义变量集合,并存储变量的变量作用域;如果第一次出现是使用性出现,则该变量是不可信变量(untrusted_var)。

6.根据权利要求5的PHP语言Web应用中不可信变量的静态检测方法,其特征在于判定变量是否第一次出现步骤是:将该变量匹配已定义变量集合,如果能够匹配且在作用域内,则忽略该变量;如果不能匹配或已在作用域之外,则该变量是第一次出现。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京大学,未经南京大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201010226460.8/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top