開發(fā)人員在日常開發(fā)時代碼會存在著一些潛在的問題,這些問題雖然在實際操作時可能不會報錯,但是會給項目帶來一些潛在的安全隱患。
對于一些安全系數(shù)比較高的軟件或者安全性較高的場所的影響會比較大,所以在整個開發(fā)流程中需要有這個對代碼進行靜態(tài)分析的環(huán)節(jié),即需要自動拉取代碼對代碼進行分析。該代碼靜態(tài)分析軟件具備著豐富的代碼解決功能,當開發(fā)人員提交代碼后就會自動觸發(fā)該工具,存在安全隱患的問題會顯示在web界面上,且用戶可以在web界面上對代碼進行線上的編輯修改并且可以提交代碼。該功能是自動觸發(fā)的,不需要人工手動操作。
該代碼靜態(tài)分析軟件支持以下缺陷分析。
- 變量在定義之前被使用。
- 表達式存在未定義行為,變量的求值順序不確定
- 動態(tài)分配的內(nèi)存未釋放就丟失了該內(nèi)存的引用,必然會引起內(nèi)存的泄漏。
- 臨時變量的指針被賦值給全局變量,然而他可能會被釋放或重新創(chuàng)建,存在潛在風險。
- 變量釋放后被使用
- 變量被釋放
- 導出來的變量和聲明不在模塊外部使用
- 函數(shù)真實的返回值與聲明的返回值類型不一致
- 標識符因為還沒有聲明所以無法識別(先聲明后使用)
- 預處理錯誤。頭文件存在但不可讀
- 預處理錯誤。找不到引用的頭文件
- 函數(shù)聲明有返回值,但函數(shù)無返回值。
- 函數(shù)返回值沒有被使用
- 編譯錯誤,檢查分析器無法繼續(xù)
- 導出來的函數(shù)和聲明未在模塊外部使用。其中聲明可以使用靜態(tài)限定符
- 函數(shù)定義有誤
- 變量重定義
- 外部聲明的變量被本地聲明遮蓋
- 該表達式不修改任何值