【程式開發筆記】保證軟體品質一定要做程式碼檢測 (上) | 開源程式碼檢測平台 (SonarQube) - 大漠國渡

前言

上一篇文章 輕鬆了解網站安全10大風險 | 開放網路軟體安全計畫 | OWASP TOP 10,提到了系統上線,程式碼需要做系統安全弱點掃描,並要確保系統沒有 OWASP TOP 10 中的問題,才能保證系統的安全性

程式碼的安全性檢查當然部會由人工進行檢查,那是會死人的,有多少規則,多少行程式碼,能稱之為系統的程式碼一定不下數萬行。

因此就有許多的大神將它寫成程式工具啦~不但方便繼承前人的智慧,也方便大伙們使用啦~

在此就要介紹本人使用的工具(SonarQube),並做簡單的使用說明,以及如何閱讀錯誤修正錯誤。還有還有會教大家如何產出檢測結果的報表,非常方便交報告喔!!

一條龍的服務現在開始~~

開源程式碼檢測平台 SonarQube

一、介紹 SonarQube

SonarQube 是一套開源的原碼檢測與品質管理系統,是由 Java 語言所開發的,因此是支援跨平台服務的,並且是供大眾免費使用的。

可檢測的語言非常多有 Java、C#、JavaScript、TypeScript、PHP、Python、VB.NET、Flex、HTML、Kotlin、Ruby、Scala、Go、CSS、XML、JSP...等語言,未在上述提及的部分需而外加購。

可以支援團隊協作,多人一起維護專案。(本章部會提及,之後另有文章說明)

支援安裝外掛套件。(產出檢測結果的報表,就是使用外掛套件)

支援中文介面。(也是使用外掛套件,身為英文不好的工程師非常好用)

SonarQube

二、安裝及設定 SonarQube (伺服端)

SonarQube 目前已經到第9版了,但是比較新的版本某些套件可能來不及更新支援到第9版,因此我這邊會以第8版為主。

(一)、下載 JAVA

下載 JAVA,SonarQube 8.9.10 LTS 需要以  JAVA 11 執行,這邊我就使用 openjdk 11 。

 openjdk 11

(二)、安裝 JAVA 

安裝的方式也是非常簡單,只需要將下載下來的 sonarqube-8.9.10.zip 安裝檔案,解壓縮至你想要的路徑即可,例如 D 槽。

 openjdk 11

再來就是設定環境變數,新增一個變數 JAVA_HOME,值為你安裝 JAVA 11 的路徑,設定完成後就結束了 JAVA 的安裝。

openjdk 11

(三)、下載 SonarQube 8.9.10 LTS

1. 下載 SonarQube 8.9.10 LTS,取得 SonarQube (伺服端) 安裝程式。

這邊我們使用 Community Edition (社區版) 即可,此版免費使用。 

SonarQube

2. 若有其他需求依照指示下載其他版本囉~~

比方說需要檢測 C、C++、Obj-C、Swift、ABAP、T-SQL、PL/SQL 以上        語言所撰寫的程式,就需要下載 Developer Edition (開發版)。

SonarQube

(四)、安裝 SonarQube 8.9.9 LTS

安裝的方式也是非常簡單,只需要將下載下來的 sonarqube-8.9.10.zip 安裝檔案,解壓縮至你想要的路徑即可,例如 D 槽。

SonarQube

(五)、啟動 SonarQube 8.9.9 LTS 確認安裝成果

管理者帳號為 admin,預設密碼 admin。(登入後請記得變更)

SonarQube

(六) 、安裝 SonarQube 中文化套件 (Traditional Chinese Language Pack)

工具列上找到 Administration (配置) 點選後,在點選 Marketplace (應用市場),輸入 Traditional Chinese Language Pack,按下安裝。

SonarQube 中文化套件 (Traditional Chinese Language Pack)

(七) 、安裝 SonarQube 報表套件 (SonarQube CNES Report)

工具列上找到 Administration (配置) 點選後,在點選 Marketplace (應用市場),輸入 SonarQube CNES Report,按下安裝。

SonarQube 報表套件 (SonarQube CNES Report)

(八) 、重新啟動確認套件安裝成果

接下來就依著重新啟動的指示,將重新啟動 SonarQube,再來看看套件安裝成果啦~

SonarQube

SonarQube 中文化套件 (Traditional Chinese Language Pack) 安裝成功後,登入畫面就是以中文呈現啦~

這樣大家使用起來因該就減少不少壓力了吧!!

容易使用也方便大家學習囉😁

SonarQube 中文化套件 (Traditional Chinese Language Pack)

SonarQube 報表套件 (SonarQube CNES Report) 安裝成功後,功能列會多出一的更多的選項,裡面就有一個 CNES Report 的功能。

報表可以產出4中格式的檔案 DOCX、MD、XLSX、CSV。

其中 DOCX、MD 檔案是檢測結果的主要內容 (如:評分等級)。

而 XLSX、CSV 檔案是檢測結果的明細內容 (如:各項程式碼問題點)。

SonarQube 報表套件 (SonarQube CNES Report)

三、安裝及設定 SonarScanner (客戶端)

(一)、下載及安裝 JAVA

SonarScanner (客戶端),一樣需要以  JAVA 11 執行,那就請大家參考「安裝及設定 SonarQube (伺服端)」中的安裝 openjdk 11的步驟囉~

(二)、下載 SonarScanner 

下載 SonarScanner,使用這包工具提交檢測的程式碼給伺服端,所以所以一定要安裝喔!!

SonarScanner

(三)、安裝 SonarScanner

 安裝一樣只要解壓縮安裝檔,到你喜歡的路徑中就可以啦~

SonarScanner

(四)、設定 SonarScanner 

接下來要做一些小小的設定,才可以掃描程式,在你安裝的 SonarScanner 路徑中找到 conf 資料夾,開啟 sonar-scanner.properties 文件。

分別設定以下三個參數

sonar.sourceEncoding (使用的編碼最好使用 UTF-8 比較不會遇到問題)

sonar.projectVersion (設定初始版號)

sonar.java.binaries
(這個非常重要一定要設定,不然會無法進行檢測,這邊要設定 java 編譯檔路徑,避免專案中的編譯檔被掃描而發生錯誤)

SonarScanner

(五)、下載 NodeJs

下載 NodeJs,如果您不需要檢測 JavaScript、TypeScript、CSS 語言的話,NodeJs 就不需要下載安裝了,反過來說就是必須要使用 NodeJs 才可以針對JavaScript、TypeScript、CSS 這三種語言進行檢測,沒有使用的話是不會有這三種語言的檢測結果的。

NodeJs

(六)、安裝 NodeJs

還是解壓縮安裝檔,到你喜歡的路徑中就對了

 NodeJs

再來設定環境變數就可以完成全部的安裝囉~


 

相關文章

【程式開發筆記】輕鬆了解網站安全10大風險,開放網路軟體安全計畫 (OWASP TOP 10) - 大漠國渡

精選美景 - 周邊商品 (提供客製化服務)

大漠有設計簡單的程式碼,讓大家可以體驗一下寫程式的感覺,以及呈現結果,並將他製作成周邊商品,如 : 藍芽喇叭、拼圖、鑰匙圈、筆記本、滑鼠、滑鼠墊、鍵盤...等商品

商品類別涉及了電子產品、居家用品、杯子餐廚、服飾、旅行用品、辦公用品...等

有興趣的人可以到 大漠國渡 - 商品小舖 看看喔~  

我的優惠碼 K0999975,可享受 KUSDOM 全場 9 折優惠。 

大漠國渡 - 商品小舖 (KUSDOM)

精選授權圖片

如果您喜歡大漠國渡「攝影照片」的話,可以在 大漠國渡 Shutterstock 的作品集中購買喔 ~

Shutterstock 授權表
如果你也有攝影做作品要分享的話,也歡迎你加入 Shutterstock contributor

如果您喜歡我的內容,可以這樣贊助大漠國渡 (支持創作)

如果您喜歡我的內容,可以透過以下方式贊助大漠國渡,支持創作

Paypal : https://www.paypal.com/paypalme/jay82313tw

悠游付 (EasyWallet APP) : (390) 2202-2122-3306-1876

將來銀行 : (823) 8862-0972-6236-01

留言