【51CTO.com快译】SonarQube是一款基于Web的工具,可帮助开发人员生成没有安全问题、错误、漏洞、异常和一般问题的代码。如果您在开发一个小项目,那可能很容易,您可以仔细检查代码以发现任何问题。但如果您在开发一个大项目(或众多小项目),可能没时间梳理自己编写的每一行代码。
本文介绍如何使用SonarQube代码分析平台这款工具,以便您可以信任自己或别人编写的代码。
虽然您已安装了一款很不错的基于Web的工具,但使用Sonarqube不像您想象的那么简单。如果您研读一下说明文档,可能会发现让人有点迷糊。
别担心,我会介绍使用Sonarqube扫描“Hello,World!”应用程序(用Java编写)的过程。由于我们最初安装在Ubuntu Server 20.04上,我会继续使用该平台。如果您在不同的操作系统上使用Sonarqube,需要进行必要的调整。
安装Sonar-scanner
这是大多数用户会迷糊的地方。使用Sonarqube进行任何操作之前,必须将sonar-scanner应用程序安装在项目所在的机器上。我会使这个步骤变得更简单,将其安装在托管Sonarqube的同一台服务器上。以下是您的操作方法。
登录到托管Sonarqube的服务器,使用以下命令安装几个依赖项:
- sudo apt-get update && sudo apt-get install unzip wget nodejs -y
一旦安装了那些依赖项,使用以下命令创建一个新目录:
- mkdir sonarqube
使用以下命令切换进入该目录:
- cd sonarqube
下载sonar-scan文件:
- wget https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-4.2.0.1873-linux.zip
解压缩下载的文件:
- unzip sonar-scanner-cli-4.2.0.1873-linux.zip
最后,使用以下命令移动新创建的文件夹:
- sudo mv sonar-scanner-4.2.0.1873-linux / opt / sonar-scanner
接下来,我们需要使用以下命令创建sonar-scan配置文件:
- sudo nano /opt/sonar-scanner/conf/sonar-scanner.properties
在该文件中,粘贴以下内容:
- sonar.host.url=http://SERVER:9000
- sonar.sourceEncoding=UTF-8
其中SERVER是托管服务器的IP地址。
保存并关闭文件。
现在,我们将创建另一个配置文件,该文件将设置必要的$ PATH变量。执行以下命令:
- udo nano /etc/profile.d/sonar-scanner.sh
在该文件中,粘贴以下内容:
- #/bin/bash
- export PATH="$PATH:/opt/sonar-scanner/bin"
保存并关闭文件。
使用以下命令将sonar-scanner添加到您的路径:
- source /etc/profile.d/sonar-scanner.sh
使用以下命令验证sonar-scanner在正常运行:
- sonar-scanner -v
您应该看到几个工具的版本号。成功了!您可以开始进行第一次扫描了。
如何扫描您的代码?
不妨创建一个Hello, World!应用程序示例。使用以下命令创建一个新目录:
- mkdir Java
使用以下命令切换进入该文件夹:
- cd Java
使用以下命令创建代码文件:
- nano helloworld.java
在该文件中,粘贴以下内容:
- // Your Hello, World! java application
- class HelloWorld {
- public static void main(String[] args) {
- System.out.println("Hello, World!");
- }
- }
保存并关闭文件。
现在,回到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】