java - Java 程序的静态污点分析

标签 java security static-analysis taint

我不确定这里是否适合提问,如有任何帮助,我们将不胜感激。我想为 Java 构建一个静态污点分析工具。我的理解是该工具将从主入口点开始扫描所有 java 文件。对于每一行源代码,它都会对其进行解码并执行所需的操作。

例如,

1- Boolean x=false;
2- String s = x.toString();   

第 1 行声明一个 boolean 变量,第 2 行将其转换为字符串。第 1 行将注意到 boolean 变量 'x' 已被声明,并在第 2 行将其转换为字符串。如果我检查 toString() 函数并执行所需的操作,我的工具只会理解它。

我的问题是,我是否需要为 Java 中为 boolean 类型定义的所有函数编写检查?其他数据类型和其他库函数怎么样?

例如,其他一些可用于 boolean 类型的函数是;

toString(boolean value)
compareTo(Boolean that)
etc.

最佳答案

为什么要重新发明轮子?你看了吗findbugs ? 如果你知道一些错误模式,然后用 findbugs 编写你自己的错误检测器,你就完成了。 Here , here , herehere是一些起点......

关于java - Java 程序的静态污点分析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18307464/

相关文章:

json - 通过创建 un-eval-uatable ("unparsable cruft") JSON 来提高安全性?

android - 防止未经授权访问 Restful API

iPhone 静态代码分析器

javascript - 有没有办法警告使用 IE 版本不支持的 JavaScript 功能?

java - java中如何将int转换为char?为什么它有效?如何防止信息丢失?

JavaFX 与 Java Swing 在行业中的使用

java - 如何在 Jersey 客户端 HTTP POST 请求中发布原始 json 文本?

java - DecimalFormat ,输入 123.45 ,期望 0123.4500

api - 为什么要在 `Authorization: Bearer ` header 中发送 token ?

optimization - Visual C++ 使用什么形式的别名分析?