SonarQube代碼掃描規則
概述
SonarQube 對(duì)源代碼執行規則以生成(chéng)問題。有四種(zhǒng)類型的規則:
代碼異味(可維護領域)
錯誤(可靠性域)
漏洞(安全域)
安全熱點(安全域)
對(duì)于代碼異味和錯誤,預計零誤報。至少這(zhè)是目标,因此開(kāi)發(fā)人員不必懷疑是否需要修複。
對(duì)于漏洞,目标是讓超過(guò) 80% 的問題是真實的。
安全熱點規則將(jiāng)注意力引向(xiàng)對(duì)安全敏感的代碼。預計80%以上的問題會(huì)在開(kāi)發(fā)者審核後(hòu)快速解決爲“已審核”。
規則頁面(miàn)是您可以發(fā)現所有現有規則或基于提供的模闆創建新規則的入口點。
規則
默認情況下,當進(jìn)入頂部菜單項“規則”時(shí),您將(jiāng)看到安裝在 SonarQube 實例上的所有可用規則。您可以根據左側窗格中的搜索條件縮小選擇範圍:
語言:規則适用的語言。
類型:錯誤、漏洞、代碼異味或安全熱點規則。
标簽:可以向(xiàng)規則添加标簽,以便對(duì)它們進(jìn)行分類并幫助更輕松地發(fā)現它們。
存儲庫:爲 SonarQube 提供規則的引擎/分析器。
默認嚴重性:規則的原始嚴重性 - 由 SonarQube 定義。
狀态:規則可以有 3 種(zhǒng)不同的狀态:
Beta : 該規則是最近實施的,我們還(hái)沒(méi)有從用戶那裡(lǐ)得到足夠的反饋,所以可能(néng)會(huì)出現誤報或漏報。
已棄用:不應再使用該規則,因爲存在類似但更強大和更準确的規則。
就(jiù)緒:規則已準備好(hǎo)在生産中使用。
可用時(shí)間:首次在 SonarQube 上添加規則的日期。例如,這(zhè)對(duì)于列出自上次插件升級以來的所有新規則很有用。
模闆:顯示允許創建自定義規則的規則模闆(見本頁稍後(hòu)部分)。
質量配置文件:包含在特定配置文件中或從其排除
如果選擇了質量配置文件,還(hái)可以檢查其活動嚴重性以及它是否被繼承。有關更多信息,請參閱質量配置文件文檔。
規則詳情
要查看規則的詳細信息,請單擊它,或使用向(xiàng)右箭頭鍵。除了基本規則數據外,您還(hái)可以查看它在哪些(如果有)配置文件中處于活動狀态,以及使用它提出了多少未解決的問題。
僅當您具有正确的權限(“管理質量配置文件和門戶”)時(shí),以下操作才可用:
添加/删除标簽:
可以在規則上添加現有标簽,或創建新标簽(隻需在文本字段中鍵入時(shí)輸入新名稱)。
請注意,某些規則具有無法删除的内置标簽 - 它們由提供規則的插件提供。
擴展說(shuō)明:
您可以擴展規則說(shuō)明,讓用戶了解您的組織如何使用特定規則或提供有關規則的更多信息。
請注意,該擴展將(jiāng)作爲規則詳細信息的正常部分提供給非管理員用戶。
規則模闆和自定義規則
規則模闆由插件提供,作爲用戶在 SonarQube 中定義自己的自定義規則的基礎。要查找模闆,請從“模闆”下拉列表中選擇“僅顯示模闆”方面(miàn):
要從模闆創建自定義規則,請單擊“自定義規則”标題旁邊的“創建”按鈕并填寫以下信息:
姓名
密鑰(自動建議)
說(shuō)明(支持 Markdown 格式)
默認嚴重性
地位
模闆指定的參數
您可以通過(guò)單擊“自定義規則”部分中的鏈接,從模闆導航到從模闆定義的自定義規則的詳細信息。
自定義規則
自定義規則被視爲與任何其他規則一樣,不同之處在于您可以編輯或删除它們:
注意:删除自定義規則時(shí),它不會(huì)從 SonarQube 實例中物理删除。相反,它的狀态設置爲“REMOVED”。這(zhè)允許與此規則相關的當前或舊問題在 SonarQube 中正确顯示,直到它們被完全删除。
擴展編碼規則
可以添加自定義編碼規則。有關詳細信息和教程,請參閱添加編碼規則。
規則類型和嚴重性
規則是如何分類的?
SonarQube 質量模型將(jiāng)規則分爲四類:錯誤、漏洞、安全熱點和代碼異味。根據以下問題的答案將(jiāng)規則分配給類别:
關于代碼的規則是明顯錯誤的,還(hái)是更可能(néng)是錯誤的?
如果答案是“是”,那麼(me)這(zhè)是一個錯誤規則。
如果不...
是關于可以被黑客利用的代碼的規則嗎?
如果是這(zhè)樣,那麼(me)這(zhè)是一個漏洞規則。
如果不...
關于代碼的規則是安全敏感的嗎?
如果是這(zhè)樣,那麼(me)這(zhè)是安全熱點規則。
如果不...
規則既不是錯誤也不是漏洞嗎?
如果是這(zhè)樣,那麼(me)這(zhè)是代碼氣味規則。
嚴重性如何分配?
爲了給規則分配嚴重性,我們提出了更多的問題。第一個基本上是:
可能(néng)發(fā)生的最糟糕的事(shì)情是什麼(me)?
在回答這(zhè)個問題時(shí),我們試圖在不預測世界末日的情況下考慮墨菲定律。
然後(hòu)我們評估最壞事(shì)的影響和可能(néng)性(參見下面(miàn)的嚴重性和可能(néng)性如何決定?)是高還(hái)是低,并將(jiāng)答案插入真值表:
如何确定嚴重性和可能(néng)性?
爲了評估規則的嚴重性,我們從最壞的事(shì)情(請參閱上面(miàn)的嚴重性如何分配?)開(kāi)始,并詢問特定類别的問題。
錯誤
影響:最壞的事(shì)情是否會(huì)導緻應用程序崩潰或損壞存儲的數據?
可能(néng)性:最壞的事(shì)情發(fā)生的概率是多少?
漏洞
影響:利用 Worst Thing 是否會(huì)對(duì)您的資産或用戶造成(chéng)重大損害?
可能(néng)性:黑客能(néng)夠利用最壞的東西的概率是多少?
安全熱點
安全熱點未分配嚴重性,因爲在審查它們之前,不知道(dào)是否真正存在潛在漏洞。
關于蘇州華克斯信息科技有限公司
聯系方式:400-028-4008
0512-62382981
專業的測試及安全産品服務提供商
Fortify | Webinspect | AppScan | SonarQube | 極狐GitLab
LoadRunner | UFT(QTP) | ALM(QC)
Micro Focus 鉑金合作夥伴
SonarQube中國(guó)總代理
極狐GitLab鉑金級合夥伴
HCL中國(guó)合作夥伴
掃二維碼用手機看
更多資訊