top of page
Writer's pictureDevops Tec.

SonarSource l 程式碼品質和安全管控的首選


前言

SonarSource系列產品可以用於對程式碼品質進行持續檢測,通過靜態程式碼分析(SAST)執行自動審查,以檢測程式碼中的Bug、Code Smell和安全漏洞,支援高達30多種程式語言。


您可以將SonarSource納入您的靜態分析工具(SAST)中,然後按照以下流程進行,來確保程式碼受到保護。


在將功能分支合併到主要分支之前,必須將SonarSource報告與Pull request相關聯。程式碼審核人員應查看此報告,並且透過Quality Gate的規範制定,確認所有由SonarSource報告指出的威脅都已修復,否則不應批准Pull request。



產品差異

SonarSource系列主要產品,主要為SonarQube和SonarCloud,以及SonarLint這個輔助產品 –




l   SonarQube:為SonarSource提供的地端型服務,客戶採購License後可以將SonarQube建置在客戶自己的硬體環境之中,再由使用者透過網頁存取,將程式碼推送到SonarQube中產生掃描報告,維護等就由客戶的相關INFRA人員進行維護。





l   SonarCloud:為SonarSource所提供的SaaS型服務,客戶採購License後可以直接透過網頁存取就可以開始使用將程式碼推送到SonarCloud中產生掃描報告而不需要再額外進行環境建置作業,維護為原廠全責。





l   SonarLint:為SonarSource提供的輔助型服務,可以直接安裝在客戶的整合型開發工具(IDEs)上面,可以獨立使用也可以和SonarQube或者SonarCloud搭配使用,可以直接提供開發人員開發上的品質與安全建議。



問題定義

SonarSource有助於識別Bug、Code Smell、Security Hotspots和其他漏洞等問題。 這些問題識別將基於Sonar原廠規範之規則而定,有需求也可以調整這些規則。



提供對多種程式語言的支持,以便您可以相應地配置您的項目,並且可以透過建立Quality Profiles為不同的程式語言應用不同的規則。



SonarSource所提供的所有的Rule都展列於原廠的資料庫中,有需求可以參考下方連結 –



SonarSource再掃描您的程式碼後,會將問題識別成四種類型 –




l   Bug:程式碼中任何可能導致編譯時或執行時錯誤的部分都將被視為錯誤。


l   Vulnerability:程式碼中可能使您的系統容易受到攻擊者攻擊的部分。


l   Code Smell:這不是一個問題。這屬於一個很好的開發規則實踐建議,透過Code Smell的建議可以持續性的優化程式碼品質。


l   Security Hotspots:與Vulnerability不同,Security Hotspots不一定是容易受到攻擊的問題點。相反,安全疑慮熱點重點顯示了需要人工檢查的有安全疑慮的程式碼段落。經過審查,您可能會發現需要修正的漏洞也可能發現不構成威脅。



SonarSource-Lint

SonarLint可以安裝在第三方的整合型開發工具(IDE)上。SonarLint將指出一些問題,例如應該放置空檢查的位置等。您還可以在此Plugin中配置規則。如果要查看問題發生的原因,您可以點擊並檢查所有詳細資訊。




DevSecOps整合

我們可以將SonarSource系列產品整合進到我們一DevSecOps的開發流程中,已持續性的協助我們開發人員可以掃描和分析出我們所開發之程式碼中可能存在之問題進行持續性的進行修正,進而達到Clean Code的一個目標。



結論

SonarSource系列產品支援30多種編程語言,能夠執行靜態代碼分析,檢測代碼中的Bug、Code Smell和Vulnerability。此外,SonarSource還為開發人員提供了方便易用的SonarLint,使開發人員在開發過程中更容易地識別和解決問題。


SonarSource系列產品可在整個開發生命週期中實現連續檢測和改進程式碼品質的目標,從而幫助團隊建立更可靠、更安全的軟體。


總的來說,如果您追求高品質、高安全性的程式碼,追求Clean Code的終極目標,SonarSource系列產品是一個值得考慮的選擇。


我們很期望看到 SonarSource系列產品可以幫助您,如想了解更多資訊或細節,DevOps專業的顧問團隊歡迎您來信或來電洽詢!



 














244 views0 comments

Comments


bottom of page