文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

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

2024-12-03 06:01

关注

【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内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯