跳至主要内容

使用路径查询探索数据流

您可以在 Visual Studio Code 中运行 CodeQL 查询,以帮助您跟踪数据在程序中的流动,突出显示可能存在安全漏洞的区域。

关于路径查询

路径查询是一个 CodeQL 查询,其属性为 @kind path-problem。您可以在标准 CodeQL 库中找到许多这样的查询。

您可以运行标准 CodeQL 路径查询来识别安全漏洞并手动查看结果。有关 CodeQL 如何跟踪数据流的更多信息,请参阅 CodeQL 文档中的“关于数据流分析”。

熟悉数据流分析和现有查询后,您可以在 CodeQL 中编写自己的路径查询。有关更多信息,请参阅“后续步骤”。

在本地在 VS Code 中运行路径查询

  1. 在 VS Code 中打开路径查询。
  2. 右键单击包含打开查询的窗口,然后选择**CodeQL:在选定数据库上运行查询**。或者,您也可以从 VS Code 命令面板中运行此操作。
  3. 查询运行完成后,您可以在“结果”视图中看到结果(在下拉菜单中的alerts下)。每个查询结果都描述了信息在源和接收器之间的流动。
  4. 展开结果以查看数据遵循的各个步骤。
  5. 单击每个步骤以跳转到源代码中的相应位置并进一步调查问题。

后续步骤

准备好大规模运行路径查询后,您可以使用“变体分析仓库”视图对 GitHub.com 上最多 1,000 个仓库运行查询。有关更多信息,请参阅“使用多仓库变体分析大规模运行 CodeQL 查询”。

有关如何为自己的路径查询使用正确的格式和元数据的更多信息,请参阅 CodeQL 文档中的“创建路径查询”。CodeQL 文档还包含有关如何定义新的源和接收器以及如何扩展标准 CodeQL 库以适应您的分析的模板和示例的详细信息。