查找需要register_globals的PHP脚本

Bra*_*rad 8 php register-globals

我继承了一个充满了需要register_globals打开的代码的Web服务器.其中大部分是由多年来来去的随机人员编写的自定义代码.我已经在我所知道的脚本中修复了大部分内容,但我的问题在于找到我不知道的内容.

我正在考虑编写一个应用程序来扫描Web服务器上的每个目录,以识别需要的PHP脚本register_globals.这样做有什么好的策略吗?

我考虑过的一种方法涉及以某种方式强制PHP报告所有错误,执行脚本和检查未定义的变量通知.我可以构建一个为此读取STDERR流的应用程序.

你能想到更好的方法吗?

Nik*_*kiC 7

大多数IDE会向您显示未定义的变量,例如PHPStorm.您可以让它扫描所有源文件,您将收到有关所有代码中未定义变量的通知,whiteout实际执行它.

这可能是最简单,最无痛的变种.或者,您显然可以使用Tokenizer编写自己的脚本,并识别T_VARIABLE以前未使用T_VARIABLE '=' expr构造初始化的所有s .但这会更容易出错.使用IDE可能会以更少的工作量为您提供更好的结果.