8.1.3 简单部署和使用
最后更新于:2022-04-02 07:46:25
#### 整体步骤
> 1. 部署CodeQL软件(用来将代码转换为用QL语句查询的数据库)
> 2. 以Windows的java为例,配置Mvn环境,准备代码
> 3. 配置基于VS Code的QL查询包(内置很多规则)
> 4. 为要分析的代码,创建CodeQL数据库
> 5. 执行语句进行分析, 优化代码
#### **1. 部署CodeQL软件(Win10)**
**关于CodeQL CLI**
> CodeQL CLI是一个命令行工具,用于在《开源软件》项目上本地运行CodeQL进程。可以使用CodeQL执行:
> 1. 使用GitHub工程师和开源社区提供的查询运行CodeQL分析
> 2. 创建CodeQL数据库,在CodeQL for VS Code中使用
> 3. 开发和测试自定义CodeQL查询以用于自定义分析
>
> 创建CodeQL目录,用来放置《CLI》以及要使用的《任何查询和库》
```
mkdir c:\codeql-home
https://github.com/github/codeql-cli-binaries中的codeql-win64.zip下载、解压到当前目录
改名为codeql-repo,并增加PATH环境变量"c:\codeql-home\codeql-repo",实现codeql.exe执行
```
**关于目录层级**
>不同代码存储库目录设定(基于c:\codeql-home\)
如果使用java,应当同codeql-repo同级,c:\codeql-home\codeql-java
**安装目录:c:\codeql-home\codeql-repo**
**兄弟目录:c:\codeql-home\codeql-java**
Windows的PATH中新增环境变量,使codeql.exe可以直接访问(略)
**VS Code安装CodeQL插件**
> CodeQL for VS Code提供了一种从大型开源存储库进行CodeQL安全查询的简单方法。通过这些查询或自定义查询,可以分析从源代码生成的数据库以查找错误和安全漏洞。结果师徒显示通过路径查询结果的数据流,这对分类安全结果至关重要。
>该扩展在VS Code编辑器中打开查询文件(扩展名.ql)和库文件(扩展名.qll)提供标准IntellSense功能。
语法高亮、右键单击选项、自动完成建议和悬停信息,还可以根据CodeQL样式指南格式化代码。
![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/97/99/97995d12f4d1603dfc0c01597a356fc9_398x687.png)
#### **2. 配置Mvn环境**
```
https://maven.apache.org/download.cgi下载zip包,解压,增加Windows的PATH变量,实现mvn.cmd执行
C:\Users\xxxxxxx\Java11_ENV\apache-maven-3.8.1\bin
```
#### **3. 基于现有代码创建CodeQL数据库**
```
cd c:\codeql-home\codeql-java\project_app1
codeql.exe database create ../codeql_project_app1 --language=java
```
#### **4. 配置基于VS Code工作区的QL查询包**
> tip1: 网络如果有问题需要中转一下(海外vps下载,然后下载到本地)
> tip2: git克隆方式需要递归
```
# 获取
git clone --recursive https://github.com/github/vscode-codeql-starter
or
git submodule update --init --remote https://github.com/github/vscode-codeql-starter
# 更新
git submodule update --remote https://github.com/github/vscode-codeql-starter
```
使用 VS Code打开
```
文件->从文件打开工作区->选择QL查询包
```
![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/53/6d/536d8e8b958325b5bf0b869219f80d72_270x198.png)
内部结构
![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/71/ce/71ce86fd9b5559aaee34430285399900_444x908.png)
CodeQL for VS Code 配置打开20并发限制
```
Running Queries:Max Queries
# 设置200
```
#### **5. 执行分析**
![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/97/a2/97a29d34acfa14c180a537c8d999383e_487x582.png)
';