合规国际互联网加速 OSASE为企业客户提供高速稳定SD-WAN国际加速解决方案。 广告
#### 整体步骤 > 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://img.kancloud.cn/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://img.kancloud.cn/53/6d/536d8e8b958325b5bf0b869219f80d72_270x198.png) 内部结构 ![](https://img.kancloud.cn/71/ce/71ce86fd9b5559aaee34430285399900_444x908.png) CodeQL for VS Code 配置打开20并发限制 ``` Running Queries:Max Queries # 设置200 ``` #### **5. 执行分析** ![](https://img.kancloud.cn/97/a2/97a29d34acfa14c180a537c8d999383e_487x582.png)