我正在尝试.java
使用 Fortify 静态代码分析扫描纯文件,并且经常收到一条错误消息,指出我没有包含完整的 jar 列表。
“无法解析以下对 java 类的引用。请确保将包含这些类的所有必需 jar 文件提供给 SCA。”
我的问题是它会影响扫描结果吗?这个警告需要认真对待吗?(因为我的扫描仍在继续;)
我正在尝试.java
使用 Fortify 静态代码分析扫描纯文件,并且经常收到一条错误消息,指出我没有包含完整的 jar 列表。
“无法解析以下对 java 类的引用。请确保将包含这些类的所有必需 jar 文件提供给 SCA。”
我的问题是它会影响扫描结果吗?这个警告需要认真对待吗?(因为我的扫描仍在继续;)
您可以获得部分扫描和结果,但某些问题可能会被完全遗漏和/或风险较低。如果您的代码调用 JAR 文件中的函数,则 SCA 无法跟踪数据流进出函数。因此,这些数据路径会进入黑洞并且不会返回任何结果。
最好不要有将编译扫描的警告和代码。
从第一原则而不是产品或应用程序的知识考虑这一点:
大概 Fortify 会扫描它可以看到的代码,因此它会返回一些有用的结果。但是,由于它无法查看所有代码,因此无法完成完整的工作。
不知道 Fortify 能有多聪明,它对抽象工厂之类的东西做了什么?这样的设计模式可以有效地在运行时确定实际使用了哪些类,因此您可以获得完全不同的应用程序行为,具体取决于哪些 jar 可用。
底线:鉴于您的应用程序可以在某个地方运行,为什么不能将所有 JAR 文件放在一起,让 Fortify 有机会完成更完整的工作?