支持的语言和框架¶
查看 CodeQL 最新版本支持的语言、库和框架。
语言和编译器¶
CodeQL CLI 的当前版本 (变更日志, 版本)、CodeQL 库包 (源代码) 和 CodeQL 包 (版本) 支持以下语言和编译器。
语言 | 变体 | 编译器 | 扩展 |
---|---|---|---|
C/C++ | C89、C99、C11、C17、C++98、C++03、C++11、C++14、C++17、C++20 [1] [2] | Clang(包括 clang-cl [3] 和 armclang)扩展(最高支持 Clang 17.0)、 GNU 扩展(最高支持 GCC 13.2)、 Microsoft 扩展(最高支持 VS 2022)、 Arm Compiler 5 [4] |
.cpp , .c++ , .cxx , .hpp , .hh , .h++ , .hxx , .c , .cc , .h |
C# | C# 最高支持 12 | Microsoft Visual Studio 最高支持 2019,.NET 最高支持 4.8、 .NET Core 最高支持 3.1 .NET 5、.NET 6、.NET 7、.NET 8 |
.sln , .csproj , .cs , .cshtml , .xaml |
Go(又名 Golang) | Go 最高支持 1.22 | Go 1.11 或更新版本 | .go |
Java | Java 7 到 22 [5] | javac(OpenJDK 和 Oracle JDK)、 Eclipse 编译器 for Java (ECJ) [6] |
.java |
Kotlin [7] | Kotlin 1.5.0 到 2.0.0_x | kotlinc | .kt |
JavaScript | ECMAScript 2022 或更低版本 | 不适用 | .js , .jsx , .mjs , .es , .es6 , .htm , .html , .xhtm , .xhtml , .vue , .hbs , .ejs , .njk , .json , .yaml , .yml , .raml , .xml [8] |
Python [9] | 2.7, 3.5, 3.6, 3.7, 3.8, 3.9, 3.10, 3.11, 3.12 | 不适用 | .py |
Ruby [10] | 最高支持 3.3 | 不适用 | .rb , .erb , .gemspec , Gemfile |
Swift [11] | Swift 5.4-5.10 | Swift 编译器 | .swift |
TypeScript [12] | 2.6-5.5 | 标准 TypeScript 编译器 | .ts , .tsx , .mts , .cts |
[1] | C++20 支持目前处于测试阶段。不支持模块。 |
[2] | 不支持 Objective-C、Objective-C++、C++/CLI 和 C++/CX。 |
[3] | 对 clang-cl 编译器的支持处于初步阶段。 |
[4] | 对 Arm 编译器 (armcc) 的支持处于初步阶段。 |
[5] | 可以分析在 Java 7 到 22 上执行的构建。分析理解 Java 22 标准语言功能。 |
[6] | 当构建通过 Maven 编译器插件或 Takari 生命周期插件调用 ECJ 时,支持 ECJ。 |
[7] | Kotlin 支持目前处于测试阶段。 |
[8] | JSX 和 Flow 代码、YAML、JSON、HTML 和 XML 文件也可以与 JavaScript 文件一起进行分析。 |
[9] | 提取器需要 Python 3 才能运行。要分析 Python 2.7,应安装 Python 的两个版本。 |
[10] | 需要 glibc 2.17。 |
[11] | Swift 支持目前处于测试阶段。对 Swift 的分析支持需要 macOS 或 Linux。 |
[12] | 通过在启用 TypeScript 的情况下运行 JavaScript 提取器来执行 TypeScript 分析。这是默认设置。 |
框架和库¶
CodeQL 库和查询包的当前版本 (源代码) 已针对下面列出的库和框架进行明确检查。
提示
如果您对其他库或框架感兴趣,可以扩展分析以涵盖它们。例如,通过扩展数据流库以包含其他库或框架的数据源和接收器。
C 和 C++ 内置支持¶
由 CodeQL 查询包的当前版本 codeql/cpp-queries
(变更日志, 源代码) 和 CodeQL 库包 codeql/cpp-all
(变更日志, 源代码) 提供。
名称 | 类别 |
---|---|
Berkeley 套接字 API 库 | 网络通信器 |
Bloomberg 标准库 | 实用程序库 |
string.h | 字符串库 |
C# 内置支持¶
由 CodeQL 查询包的当前版本 codeql/csharp-queries
(变更日志, 源代码) 和 CodeQL 库包 codeql/csharp-all
(变更日志, 源代码) 提供。
名称 | 类别 |
---|---|
ASP.NET | Web 应用程序框架 |
ASP.NET Core | Web 应用程序框架 |
ASP.NET Razor 模板 | Web 应用程序框架 |
Dapper | 数据库 ORM |
EntityFramework | 数据库 ORM |
EntityFramework Core | 数据库 ORM |
Json.NET | 序列化 |
NHibernate | 数据库 ORM |
WinForms | 用户界面 |
Go 内置支持¶
由 CodeQL 查询包的当前版本 codeql/go-queries
(变更日志, 源代码) 和 CodeQL 库包 codeql/go-all
(变更日志, 源代码) 提供。
名称 | 类别 |
---|---|
AWS Lambda | 无服务器框架 |
beego | Web/日志记录/数据库框架 |
Chi | Web 框架 |
Couchbase (gocb 和 go-couchbase) | 数据库 |
Echo | Web 框架 |
Gin | Web 框架 |
glog | 日志记录库 |
go-pg | 数据库 |
go-restful | Web 应用程序框架 |
go-sh | 实用程序库 |
go-spew | 日志记录库 |
GoKit | 微服务工具包 |
Gokogiri | XPath 库 |
golang.org/x/crypto/ssh | 网络通信器 |
golang.org/x/net/websocket | 网络通信器 |
goproxy | HTTP 代理库 |
Gorilla mux | HTTP 请求路由器和调度程序 |
Gorilla websocket | 网络通信器 |
GORM | 数据库 |
GoWebsocket | 网络通信器 |
goxpath | XPath 库 |
htmlquery | XPath 库 |
json-iterator | 序列化 |
jsonpatch | 序列化 |
jsonquery | XPath 库 |
klog | 日志记录库 |
Logrus | 日志记录库 |
Macaron | Web 框架 |
mongo | 数据库 |
nhooyr.io/websocket | 网络通信器 |
protobuf | 序列化 |
Revel | Web 框架 |
SendGrid | 电子邮件库 |
sqlx | 数据库 |
Squirrel | 数据库 |
ws | 网络通信器 |
xmlpath | XPath 库 |
xmlquery | XPath 库 |
xpath | XPath 库 |
xpathparser | XPath 库 |
yaml | 序列化 |
zap | 日志记录库 |
Java 和 Kotlin 内置支持¶
注意
CodeQL 对 Kotlin 的分析目前处于测试阶段。在测试阶段,Kotlin 代码的分析以及相关文档将不会像其他语言那样全面。
由 CodeQL 查询包的当前版本 codeql/java-queries
(变更日志, 源代码) 和 CodeQL 库包 codeql/java-all
(变更日志, 源代码) 提供。
名称 | 类别 |
---|---|
Apache Commons Collections | 数据结构实用程序库 |
Apache Commons Lang | 实用程序库 |
Apache HTTP 组件 | 网络通信器 |
Guava | 实用程序和集合库 |
Hibernate | 数据库 |
iBatis / MyBatis | 数据库 |
Jackson | 序列化 |
Java 持久性 API (JPA) | 数据库 |
JaxRS | Jakarta EE API 规范 |
JDBC | 数据库 |
JSON-java | 序列化 |
Kryo 反序列化 | 序列化 |
Project Lombok | 实用程序库 |
Protobuf | 序列化 |
SnakeYaml | 序列化 |
Spring JDBC | 数据库 |
Spring MVC | Web 应用程序框架 |
Struts | Web 应用程序框架 |
Thrift | RPC 框架 |
XStream | 序列化 |
JavaScript 和 TypeScript 内置支持¶
由 CodeQL 查询包的当前版本 codeql/javascript-queries
(变更日志, 源代码) 和 CodeQL 库包 codeql/javascript-all
(变更日志, 源代码) 提供。
名称 | 类别 |
---|---|
angular(现代版本) | HTML 框架 |
angular.js(旧版本) | HTML 框架 |
AWS Lambda | 无服务器框架 |
axios | 网络通信器 |
浏览器 | 运行时环境 |
EJS | 模板语言 |
电子 | 运行时环境 |
快递 | 服务器 |
Fastify | 服务器 |
手柄 | 模板语言 |
Hapi | 服务器 |
Hogan | 模板语言 |
jQuery | 实用程序库 |
Koa | 服务器 |
lodash | 实用程序库 |
MongoDB | 数据库 |
MSSQL | 数据库 |
小胡子 | 模板语言 |
MySQL | 数据库 |
Nest.js | 服务器 |
节点 | 运行时环境 |
Nunjucks | 模板语言 |
PostgreSQL | 数据库 |
Ramda | 实用程序库 |
React | HTML 框架 |
React Native | HTML 框架 |
请求 | 网络通信器 |
Restify | 服务器 |
Sequelize | 数据库 |
Socket.io | 网络通信器 |
SQLite3 | 数据库 |
超级代理 | 网络通信器 |
Swig | 模板语言 |
下划线 | 实用程序库 |
Vue | HTML 框架 |
Python 内置支持¶
由当前版本的 CodeQL 查询包 codeql/python-queries
(变更日志, 源代码) 和 CodeQL 库包 codeql/python-all
(变更日志, 源代码) 提供。
名称 | 类别 |
---|---|
AWS Lambda | 无服务器框架 |
aiohttp.web | Web 框架 |
Django | Web 框架 |
djangorestframework | Web 框架 |
FastAPI | Web 框架 |
Flask | Web 框架 |
Flask-Admin | Web 框架 |
Tornado | Web 框架 |
Twisted | Web 框架 |
Gradio | Web 框架 |
starlette | 异步服务器网关接口 (ASGI) |
ldap3 | 轻量级目录访问协议 (LDAP) |
python-ldap | 轻量级目录访问协议 (LDAP) |
httpx | HTTP 客户端 |
pycurl | HTTP 客户端 |
请求 | HTTP 客户端 |
urllib | HTTP 客户端 |
urllib2 | HTTP 客户端 |
urllib3 | HTTP 客户端 |
dill | 序列化 |
PyYAML | 序列化 |
ruamel.yaml | 序列化 |
simplejson | 序列化 |
toml | 序列化 |
ujson | 序列化 |
fabric | 实用程序库 |
idna | 实用程序库 |
invoke | 实用程序库 |
jmespath | 实用程序库 |
multidict | 实用程序库 |
pydantic | 实用程序库 |
yarl | 实用程序库 |
aioch | 数据库 |
aiomysql | 数据库 |
aiopg | 数据库 |
aiosqlite | 数据库 |
asyncpg | 数据库 |
cassandra-driver | 数据库 |
clickhouse-driver | 数据库 |
cx_Oracle | 数据库 |
mysql-connector | 数据库 |
mysql-connector-python | 数据库 |
MySQL-python | 数据库 |
mysqlclient | 数据库 |
oracledb | 数据库 |
phoenixdb | 数据库 |
psycopg2 | 数据库 |
pymssql | 数据库 |
PyMySQL | 数据库 |
pyodbc | 数据库 |
SQLite3 | 数据库 |
Flask-SQLAlchemy | 数据库 ORM |
peewee | 数据库 ORM |
SQLAlchemy | 数据库 ORM |
cryptography | 密码学库 |
pycryptodome | 密码学库 |
pycryptodomex | 密码学库 |
rsa | 密码学库 |
MarkupSafe | 转义库 |
libtaxii | TAXII 实用程序库 |
libxml2 | XML 处理库 |
lxml | XML 处理库 |
xmltodict | XML 处理库 |
Ruby 内置支持¶
由当前版本的 CodeQL 查询包 codeql/ruby-queries
(变更日志, 源代码) 和 CodeQL 库包 codeql/ruby-all
(变更日志, 源代码) 提供。
名称 | 类别 |
---|---|
excon | HTTP 客户端 |
faraday | HTTP 客户端 |
http_client | HTTP 客户端 |
httparty | HTTP 客户端 |
libxml-ruby | XML 处理库 |
nokogiri | XML 处理库 |
open-uri | HTTP 客户端 |
posix-spawn | 实用程序库 |
rest-client | HTTP 客户端 |
Ruby on Rails | Web 框架 |
rubyzip | 压缩库 |
typhoeus | HTTP 客户端 |
Swift 内置支持¶
注意
CodeQL 对 Swift 的分析目前处于测试阶段。在测试阶段,对 Swift 代码的分析以及相关文档将不像其他语言那样全面。
由当前版本的 CodeQL 查询包 codeql/swift-queries
(变更日志, 源代码) 和 CodeQL 库包 codeql/swift-all
(变更日志, 源代码) 提供。
名称 | 类别 |
---|---|
AEXML | XML 处理库 |
Alamofire | 网络通信器 |
核心数据 | 数据库 |
CryptoKit | 密码学库 |
CryptoSwift | 密码学库 |
基础 | 实用程序库 |
GRDB | 数据库 |
JavaScriptCore | 脚本库 |
Libxml2 | XML 处理库 |
网络 | 网络通信器 |
Realm Swift | 数据库 |
RNCryptor | 密码学库 |
SQLite3 | 数据库 |
SQLite.swift | 数据库 |
UIKit | 用户界面库 |
WebKit | 用户界面库 |