上一篇文章 【程式開發筆記】保證軟體品質一定要做程式碼檢測 (上) | 開源程式碼檢測平台 (SonarQube) - 大漠國渡 ,已經教大家安裝 SonarQube 以及SonarScanner,接下來就可以進行原碼檢測了😁
在檢測前,我們案需要建立專案, 取得檢測指令,並透過指令執行檢測~指令的部分會教大家做成批次檔(.bat),方便日後的檢測,不用一值輸入重複的指令。
成功完成原碼檢測後,可以在 SonarQube 上查看檢測報告,並透過報告上提供的修正放是進行修復,修復後可以透過同一指令進行複測,進而確認修復結果。
如何看 SonarQube 的檢測報告📈,之後會再專門寫一篇文章,來為大家做個詳細內容的分享。
完成檢測後,專案卡上面就會呈現燈號,結果正常 (綠色燈號,燈號等級 A) 是最好的。
如果是錯誤的話,就要再看 Bugs、弱點、Hotspots Reviewed 或 氣味,哪一個燈號是紅燈燈號 (燈號等級 B、C、D、E),都表示有要修改的項目,那個就要趕緊修復啦~ 避免自己的系統被駭客入侵。
錯誤 (Bugs) : 編碼的錯誤將損毀你的程式碼,需要立即的修復。
在這個類別的項目都要進行修復,這些錯誤都可能造成系統無法正常運行,導致功能不法運作。
弱點 : 使程式碼中出現一個容易受到攻擊的點。
弱點這個類別的項目建議進行修復,這些錯誤都可以被有心人是運用,導致「系統風險、資安風險」不可被忽視,基本上還是屬於要修復的項目,只是沒有錯誤 (Bugs) 急迫。
氣味 : 屬於一種可維護性問題,會使你的程式碼混亂且難以維護。
氣味類別是建議要調整的程式碼,這些問題會造成使用者難以維護,或者是維護成本高的問題,這些問題都會有提供建議,使我們的程式碼標準化,而不是雜亂無章的。
有時間的話,建議做調整,提升可維護性,減少成本。
安全熱點有三的等級(高、中、低),基本上我會修正高、中兩個等級,他們是屬於風險比較高的,這的類別也是屬於有時間的話,建議做調整的項目。
阻礙 : 錯誤高機率會影響運作中的應用程序行為,
如 : 記憶體洩漏、未關閉的JDBC連接...等。(必須立即修復代碼)
嚴重 : 錯誤低機率會影響生產的應用程序行為,也可能是表示安全漏洞的問題,
如 : 沒有抓取到的區塊、SQL注入...等。(必須立即修復代碼)
主要 : 質量缺陷嚴重影響開發人員的程式撰寫。(建議做調整)
如 : 重複的區塊、未使用的參數。
次要 : 質量缺陷會稍微影響開發人員的程式撰寫。(建議做調整)
如 : 每行書寫不應太長、“switch” 語句應至少包含3種情況。
訊息 : 發現錯誤或質量缺陷並提醒。(建議做調整)
「標準」是由一些組織根據實際情況所統計的項目,這些會是屬於目前最常見的攻擊手法,因此這些問題風險最高,這邊的問題在上述類別都已包含在內,在這邊所列是應最優先處理的項目。
如 : 開放網路軟體安全計畫所列的「前十大網路應用系統安全安全弱點 (OWASP TOP 10)」。
案例 : HTML 裡它建議我們把 改為較新的 HTML5 標籤 。
操作方式,就是他所列的問題旁有「Why is this an Issue」,點擊後下方會呈現問題說明及「建議修正指引」,快速的協助我們修正項目。
紅框部分對應了 SonarQube 檢測結果卡片的燈號。
說明同「三、檢測結果說明 」的「(一)、檢測結果」。
紅框部分對應了類別的問題數量 ,紅框部分下面的表是「有問題的項目」清單。
說明同「三、檢測結果說明 」的「(二)、解讀 - 檢測結果「類別」。
EXCLE 檔是將「有問題的項目」清單的內容更詳細列出。