我有一个 Java 源代码,我需要查询和应用安全策略 [例如应用 CWE] 我有几个想法,对于使用 AST 然后遍历树的初学者。其他包括使用正则表达式。除了 AST 或正则表达式之外,我是否可以将其他选项用于此类过程。
问问题
252 次
4 回答
2
AST 是一个不错的选择,比正则表达式好得多。
有许多可用的 Java 解析器。ANTLR 的 java 语法就是一个例子。
一些静态分析工具(如PMD)支持用户定义的规则,允许您执行许多检查而无需大量工作。
于 2010-06-09T20:18:19.910 回答
0
有许多预先存在的工具可以完成您所要求的部分或全部工作。有些在源代码级别,有些通过解析字节码。
看看 - CheckStyle - FindBugs - PMD
所有这些都可以以一种或另一种方式扩展,因此除了他们拥有的许多标准检查之外,您可能还可以让他们检查您想要检查的内容
于 2010-06-09T20:23:19.577 回答
0
您要么想要获得专注于您感兴趣的漏洞的现有静态分析工具,要么想要获得用于构建自定义分析的强大基础的工具。
仅解析为 AST 并不能为您提供很多分析支持。您需要知道符号在哪里遇到(例如,范围、符号表、类型解析),并且您通常需要知道信息如何在组成的软件元素之间流动(继承图、调用图、控制流、数据流)系统。ANTLR 之类的工具不提供此功能;它们是解析器生成器。
我们的DMS Software Reengineering Toolkit及其Java Front End是为 Java 提供此信息的工具基础。
于 2010-06-09T20:46:51.170 回答