用途:面向静态分析(SAST)、漏洞检测与安全代码扫描,提供 CodeQL 的专家级使用指导,包括自定义查询开发与 CI/CD 集成。
主要能力:CodeQL 将代码视为可查询数据库,支持 C/C++、C#、Go、Java、JavaScript/TypeScript、Python、Ruby,并为 GitHub Code Scanning 提供支持。查询类型涵盖安全查询(漏洞)、代码质量查询(缺陷与坏味道)、合规查询(编码规范)和自定义查询(组织特定模式)。
使用方式:先安装 CodeQL CLI,例如 wget https://github.com/github/codeql-cli-binaries/releases/latest/download/codeql-linux64.zip,解压后加入 PATH,并用 codeql --version 验证;可克隆查询库 git clone https://github.com/github/codeql.git codeql-repo。创建数据库示例:codeql database create my-js-db --language=javascript;Java 需构建命令 --command="mvn clean package";多语言用 --db-cluster --language=javascript,python。运行分析:codeql database analyze my-db --format=sarif-latest --output=results.sarif,可指定查询套件;自定义查询用 codeql query run my-query.ql --database=my-db --output=results.bqrs,再用 codeql bqrs decode 转 CSV。查询以 QL 编写,含 @name、@kind、@problem.severity、@security-severity、@precision、@id、@tags 等元数据,可基于数据流与污点跟踪(TaintTracking::Configuration)定义 source、sink、sanitizer。GitHub Actions 中可用 github/codeql-action/init、autobuild、analyze 完成集成。
适用场景:安全审计、漏洞排查、代码质量与合规检查、CI/CD 自动化扫描。
限制:资料未提供具体收费、价格、平台支持范围与效果数据;部分语言(如 Java)需可构建环境,查询性能与误报需自行调优。