如何使用SonarQube分析代码并查找漏洞?

译文
开发 前端
SonarQube是一款基于Web的工具,可帮助开发人员生成没有安全问题、错误、漏洞、异常和一般问题的代码。如果您在开发一个小项目,那可能很容易,您可以仔细检查代码以发现任何问题。但如果您在开发一个大项目(或众多小项目),可能没时间梳理自己编写的每一行代码。

[[394523]]

【51CTO.com快译】SonarQube是一款基于Web的工具,可帮助开发人员生成没有安全问题、错误、漏洞、异常和一般问题的代码。如果您在开发一个小项目,那可能很容易,您可以仔细检查代码以发现任何问题。但如果您在开发一个大项目(或众多小项目),可能没时间梳理自己编写的每一行代码。

本文介绍如何使用SonarQube代码分析平台这款工具,以便您可以信任自己或别人编写的代码。

虽然您已安装了一款很不错的基于Web的工具,但使用Sonarqube不像您想象的那么简单。如果您研读一下说明文档,可能会发现让人有点迷糊。

别担心,我会介绍使用Sonarqube扫描“Hello,World!”应用程序(用Java编写)的过程。由于我们最初安装在Ubuntu Server 20.04上,我会继续使用该平台。如果您在不同的操作系统上使用Sonarqube,需要进行必要的调整。

安装Sonar-scanner

这是大多数用户会迷糊的地方。使用Sonarqube进行任何操作之前,必须将sonar-scanner应用程序安装在项目所在的机器上。我会使这个步骤变得更简单,将其安装在托管Sonarqube的同一台服务器上。以下是您的操作方法。

登录到托管Sonarqube的服务器,使用以下命令安装几个依赖项:

  1. sudo apt-get update && sudo apt-get install unzip wget nodejs -y 

一旦安装了那些依赖项,使用以下命令创建一个新目录:

  1. mkdir sonarqube 

使用以下命令切换进入该目录:

  1. cd sonarqube 

下载sonar-scan文件:

  1. wget https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-4.2.0.1873-linux.zip 

解压缩下载的文件:

  1. unzip sonar-scanner-cli-4.2.0.1873-linux.zip 

最后,使用以下命令移动新创建的文件夹:

  1. sudo mv sonar-scanner-4.2.0.1873-linux / opt / sonar-scanner 

接下来,我们需要使用以下命令创建sonar-scan配置文件:

  1. sudo nano /opt/sonar-scanner/conf/sonar-scanner.properties 

在该文件中,粘贴以下内容:

  1. sonar.host.url=http://SERVER:9000 
  2. sonar.sourceEncoding=UTF-8 

其中SERVER是托管服务器的IP地址。

保存并关闭文件。

现在,我们将创建另一个配置文件,该文件将设置必要的$ PATH变量。执行以下命令:

  1. udo nano /etc/profile.d/sonar-scanner.sh 

在该文件中,粘贴以下内容:

  1. #/bin/bash 
  2. export PATH="$PATH:/opt/sonar-scanner/bin" 

保存并关闭文件。

使用以下命令将sonar-scanner添加到您的路径:

  1. source /etc/profile.d/sonar-scanner.sh 

使用以下命令验证sonar-scanner在正常运行:

  1. sonar-scanner -v 

您应该看到几个工具的版本号。成功了!您可以开始进行第一次扫描了。

如何扫描您的代码?

不妨创建一个Hello, World!应用程序示例。使用以下命令创建一个新目录:

  1. mkdir Java 

使用以下命令切换进入该文件夹:

  1. cd Java 

使用以下命令创建代码文件:

  1. nano helloworld.java 

在该文件中,粘贴以下内容:

  1. // Your Hello, World! java application 
  2. class HelloWorld { 
  3.     public static void main(String[] args) { 
  4.         System.out.println("Hello, World!"); 
  5.     } 

保存并关闭文件。

现在,回到Sonarqube Web界面,创建一个新项目(图1)。

图1:点击“创建新项目”,开始该过程

在随后弹出的窗口(图2)中,为新项目指定键和显示内容的名称。

图2:在Sonarqube中命名新项目

在下一个窗口(图3)中,您必须为项目生成令牌。为令牌命名,然后点击“生成”。

图3:为新项目生成令牌

然后,您将不得不给令牌赋予另一个名称,然后点击“生成”。这将为您显示令牌。复制并保存该令牌(因为以后的扫描将需要它)。

点击“继续”,进入到下一步。在此窗口(图4)中,选择项目的构建技术(我们将选择“其他”)。

图4:为您的项目选择构建技术

然后将提示您输入有待扫描的操作系统。在本例中,我们将选择Linux。选择完毕后,您会看到在计算机上运行的命令(图5)。回到终端窗口,将该命令粘贴到窗口中。

图5:Sonarqube显示了您用于扫描的命令

从您的项目目录内运行扫描,它将完成扫描工作。片刻之后(取决于项目的大小),它将结束扫描,扫描结果会显示在Sonarqube Web GUI中(图6)。

图6:我们的扫描结果显示了一个非常干净的项目

明白了,这是一个简单的Hello,World!例子。如果您的项目较大,扫描会花费较长的时间,扫描结果可能不像图6所示。因此,请阅读Sonarqube报告,解决报告的所有问题。

这是确保您代码尽可能干净、没有问题的好方法。别靠自己单独完成这项任务。仅需几个额外的步骤,您就可以借助一个平台,更快速、更可靠地完成这项任务。

原文标题:How to Analyze Code and Find Vulnerabilities with SonarQube,作者:Jack Wallen

【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】

责任编辑:华轩 来源: 51CTO
相关推荐

2018-11-14 10:20:15

SonarQube开源追踪代码

2020-11-27 08:00:00

开发分析工具web

2021-11-08 16:10:41

漏洞SonarQube安全工具

2023-04-20 08:01:13

2021-02-25 07:10:57

SonarQube代码扫描代码基线

2017-05-02 09:02:14

2022-02-17 09:41:04

bitnamidockersonarqube

2020-09-03 16:31:00

代码技能工具

2023-03-03 08:30:11

Linux开放的端口

2009-10-29 18:28:50

伪装木马清除木马病毒

2020-09-03 13:41:03

Graudit安全漏洞开源工具

2013-01-11 09:41:34

2020-10-08 13:44:27

漏洞

2017-08-22 13:45:27

2022-06-23 09:00:00

JavaScriptHTML应用程序

2014-08-27 16:22:19

2020-10-25 08:28:36

异常词汇漏洞代码

2020-10-05 22:17:39

GitHub代码开发者

2021-08-09 11:31:54

Linux重复相片删除

2015-06-18 10:49:31

点赞
收藏

51CTO技术栈公众号