【发布时间】:2011-07-22 23:20:18
【问题描述】:
我想编写一个静态代码分析工具,用于查找 PHP 代码中的 SQLi 漏洞。通常,我只是使用脚本来分隔功能,并使用 grep 对它们进行不充分的清理。显然这种方法是有限的。
我要写的程序大纲是:
- 查找所有对 mysql_query 的调用
- 查找对调用 mysql_query 的函数的所有引用
- 跟踪进入每个查询调用的所有变量,并查明是否对它们运行了 mysql_real_escape_string。
我在两种写这篇文章的方法之间陷入了困境。要么我选择一个 PHP 扩展,要么从头开始独立编写它。
使用 PHP 扩展的优点是我不必制作自己的分词器、解析器等(我想这是基于 XDebug 扩展的功能)。
有没有编写 PHP 扩展经验的人对如何解决这个问题有任何建议?
【问题讨论】:
-
如何区分从外部传入的变量和由各种字符串和变量构建的 SQL?在某些代码中很难跟踪,构建 SQL 是常见的做法。
标签: php static-analysis php-extension