在源代码和构建输出扫描之间选择

创建新项目时,您可以选择仅源代码扫描或构建输出(字节码)扫描,具体取决于项目。

了解不同的扫描方法对于项目的成功至关重要。每一种方法都有特定用途和要求,结果也不同。

仅源代码扫描

在软件开发生命周期的早期,未编译代码的仅源代码扫描是一个有用的工具,用于提前发现问题并确认程序化方法,然后再进行项目处理。

通常由开发人员执行并且需要访问源文件,仅源代码扫描速度较快,但未必与已编译代码的扫描一样准确。仅源代码扫描的结果会精确定位特定代码行中的漏洞;它们不会显示跟踪数据。

构建输出扫描

当准确性优先于扫描速度时,构建输出扫描不仅可以帮助您了解应用程序中存在漏洞的位置,还可以帮助您了解该漏洞的影响。构建输出扫描有时称为“数据流”扫描。

构建输出扫描需要访问完全构建的应用程序。扫描结果显示“跟踪”,显示经过应用程序的感染数据流,从感染数据进入应用程序的点到使用感染数据的点(称为“接收器”)。跟踪显示跟踪中每个点的代码行和感染变量;它的外观类似于异常堆栈跟踪。

构建输出扫描可能有其他要求,具体取决于项目类型:
  • 应用程序依赖关系应该可用,以获得最完整准确的结果。
  • 对于 Java 和 .NET,需要字节码,因此需要在运行扫描之前构建应用程序。
  • 对于 C/C++,需要 Visual Studio 解决方案。