【问题标题】:Writing static code analysis tools编写静态代码分析工具
【发布时间】:2011-07-22 23:20:18
【问题描述】:

我想编写一个静态代码分析工具,用于查找 PHP 代码中的 SQLi 漏洞。通常,我只是使用脚本来分隔功能,并使用 grep 对它们进行不充分的清理。显然这种方法是有限的。

我要写的程序大纲是:

  1. 查找所有对 mysql_query 的调用
  2. 查找对调用 mysql_query 的函数的所有引用
  3. 跟踪进入每个查询调用的所有变量,并查明是否对它们运行了 mysql_real_escape_string。

我在两种写这篇文章的方法之间陷入了困境。要么我选择一个 PHP 扩展,要么从头开始独立编写它。

使用 PHP 扩展的优点是我不必制作自己的分词器、解析器等(我想这是基于 XDebug 扩展的功能)。

有没有编写 PHP 扩展经验的人对如何解决这个问题有任何建议?

【问题讨论】:

  • 如何区分从外部传入的变量和由各种字符串和变量构建的 SQL?在某些代码中很难跟踪,构建 SQL 是常见的做法。

标签: php static-analysis php-extension


【解决方案1】:

我建议查看RIPS Scanner 项目并查看其源代码以获取想法。它完全执行您希望执行的功能。

【讨论】:

  • "Exactly" 在这里似乎不准确。它尝试对代码进行控制和数据流分析。该网站上的技术文件表明,两者的实施都相当不完整。
猜你喜欢
  • 1970-01-01
  • 2023-03-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-06
  • 2010-10-12
  • 1970-01-01
相关资源
最近更新 更多