Skip to main content

使用路径查询探究数据流

可以在 Visual Studio Code 中运行 CodeQL 查询,以帮助你通过某个程序跟踪数据流,并突出显示存在潜在安全漏洞的区域。

关于路径查询

路径查询是具有属性 @kind path-problem 的 CodeQL 查询。 可以在标准 CodeQL 库中找到许多类似的查询。

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

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

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

  1. 在 VS Code 中打开路径查询。
  2. 在打开了查询的窗口中右键单击,然后选择 CodeQL:在所选数据库上运行查询。 或者,也可以从 VS Code Command Palette 运行此查询。
  3. 查询运行完毕后,可以在“结果”视图(下拉菜单中 alerts 的下方)中看到结果。 每个查询结果描述源和接收器之间的信息流。
  4. 展开结果以查看数据流动的各个步骤。
  5. 单击每个步骤以在源代码中跳转到该步骤,并进一步调查问题。

后续步骤

准备好大规模运行路径查询时,可以使用“变体分析存储库”视图对 GitHub.com 上的最多 1000 个存储库运行查询。 有关详细信息,请参阅“通过多库变体分析大规模运行 CodeQL 查询”。

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