最近在研究sonarqube自定義掃描規則,看了官方的【規則】文章,如下。
概述
SonarQube 對源代碼執行規則以生成問題。有四種類型的規則:
- 代碼異味(可維護領域)
- 錯誤(可靠性域)
- 漏洞(安全域)
- 安全熱點(安全域)
對於代碼異味和錯誤,預計零誤報。至少這是目標,因此開發人員不必懷疑是否需要修復。
對於漏洞,目標是讓超過 80% 的問題是真實的。
安全熱點規則將注意力引向對安全敏感的代碼。預計80%以上的問題會在開發者審核后快速解決為“已審核”。
規則頁面是您可以發現所有現有規則或基於提供的模板創建新規則的入口點。
規則
默認情況下,當進入頂部菜單項“規則”時,您將看到安裝在 SonarQube 實例上的所有可用規則。您可以根據左側窗格中的搜索條件縮小選擇范圍:
- 語言:規則適用的語言。
- 類型:錯誤、漏洞、代碼異味或安全熱點規則。
- 標簽:可以向規則添加標簽,以便對它們進行分類並幫助更輕松地發現它們。
- 存儲庫:為 SonarQube 提供規則的引擎/分析器。
- 默認嚴重性:規則的原始嚴重性 - 由 SonarQube 定義。
- 狀態:規則可以有 3 種不同的狀態:
- Beta : 該規則是最近實施的,我們還沒有從用戶那里得到足夠的反饋,所以可能會出現誤報或漏報。
- 已棄用:不應再使用該規則,因為存在類似但更強大和更准確的規則。
- 就緒:規則已准備好在生產中使用。
- 可用時間:首次在 SonarQube 上添加規則的日期。例如,這對於列出自上次插件升級以來的所有新規則很有用。
- 模板:顯示允許創建自定義規則的規則模板(見本頁稍后部分)。
- 質量配置文件:包含在特定配置文件中或從其排除
如果選擇了質量配置文件,還可以檢查其活動嚴重性以及它是否被繼承。有關更多信息,請參閱質量配置文件文檔。
規則詳情
要查看規則的詳細信息,請單擊它,或使用向右箭頭鍵。除了基本規則數據外,您還可以查看它在哪些(如果有)配置文件中處於活動狀態,以及使用它提出了多少未解決的問題。
僅當您具有正確的權限(“管理質量配置文件和門戶”)時,以下操作才可用:
- 添加/刪除標簽:
- 可以在規則上添加現有標簽,或創建新標簽(只需在文本字段中鍵入時輸入新名稱)。
- 請注意,某些規則具有無法刪除的內置標簽 - 它們由提供規則的插件提供。
- 擴展說明:
- 您可以擴展規則說明,讓用戶了解您的組織如何使用特定規則或提供有關規則的更多信息。
- 請注意,該擴展將作為規則詳細信息的正常部分提供給非管理員用戶。
規則模板和自定義規則
規則模板由插件提供,作為用戶在 SonarQube 中定義自己的自定義規則的基礎。要查找模板,請從“模板”下拉列表中選擇“僅顯示模板”方面:
要從模板創建自定義規則,請單擊“自定義規則”標題旁邊的“創建”按鈕並填寫以下信息:
- 姓名
- 密鑰(自動建議)
- 說明(支持 Markdown 格式)
- 默認嚴重性
- 地位
- 模板指定的參數
您可以通過單擊“自定義規則”部分中的鏈接,從模板導航到從模板定義的自定義規則的詳細信息。
自定義規則
自定義規則被視為與任何其他規則一樣,不同之處在於您可以編輯或刪除它們:
注意:刪除自定義規則時,它不會從 SonarQube 實例中物理刪除。相反,它的狀態設置為“REMOVED”。這允許與此規則相關的當前或舊問題在 SonarQube 中正確顯示,直到它們被完全刪除。
擴展編碼規則
可以添加自定義編碼規則。有關詳細信息和教程,請參閱添加編碼規則。
規則類型和嚴重性
規則是如何分類的?
SonarQube 質量模型將規則分為四類:錯誤、漏洞、安全熱點和代碼異味。根據以下問題的答案將規則分配給類別:
關於代碼的規則是明顯錯誤的,還是更可能是錯誤的?
如果答案是“是”,那么這是一個錯誤規則。
如果不...
是關於可以被黑客利用的代碼的規則嗎?
如果是這樣,那么這是一個漏洞規則。
如果不...
關於代碼的規則是安全敏感的嗎?
如果是這樣,那么這是安全熱點規則。
如果不...
規則既不是錯誤也不是漏洞嗎?
如果是這樣,那么這是代碼氣味規則。
嚴重性如何分配?
為了給規則分配嚴重性,我們提出了更多的問題。第一個基本上是:
可能發生的最糟糕的事情是什么?
在回答這個問題時,我們試圖在不預測世界末日的情況下考慮墨菲定律。
然后我們評估最壞事的影響和可能性(參見下面的嚴重性和可能性如何決定?)是高還是低,並將答案插入真值表:
如何確定嚴重性和可能性?
為了評估規則的嚴重性,我們從最壞的事情(請參閱上面的嚴重性如何分配?)開始,並詢問特定類別的問題。
錯誤
影響:最壞的事情是否會導致應用程序崩潰或損壞存儲的數據?
可能性:最壞的事情發生的概率是多少?
漏洞
影響:利用 Worst Thing 是否會對您的資產或用戶造成重大損害?
可能性:黑客能夠利用最壞的東西的概率是多少?
安全熱點
安全熱點未分配嚴重性,因為在審查它們之前,不知道是否真正存在潛在漏洞。
官網原文鏈接:
https://docs.sonarqube.org/latest/user-guide/rules/