代碼質(zhì)量管理的一些思路
現(xiàn)在程序員的能力參差不齊,有科班出身的;也有半路出家的。如何提高代碼的質(zhì)量,對系統(tǒng)的魯棒性(穩(wěn)定性)非常重要。

0x01:編寫規(guī)范的代碼
在編寫代碼時,給包名、類名、類屬性等做一定的規(guī)范。可以達到見名知意的效果。具體可以參考《阿里巴巴Java開發(fā)手冊》
鏈接: https://pan.baidu.com/s/1ANvBu1hidnvRCZILDGXuQA
密碼: ugq8
一些常見的模式
項目jar命名:系統(tǒng) - 模塊。例如,cms-user
package命名:按照模塊、controller、service、dao模式命名。例如,控制器層com.user.controller,服務(wù)層com.user.service,持久層com.user.dao。
工具類包:com.common.utils
類名:控制器類UserController,服務(wù)類UserService,持久類UserDao
生成器功能的類可以命名成XXXGenterator
加載器功能的類可以命名成XXXLoader
具體其他的規(guī)則參考《阿里巴巴Java開發(fā)手冊》,就非常規(guī)范了。
0x02:靜態(tài)掃描
根據(jù)約定的規(guī)范編寫出來的代碼,雖然達到了統(tǒng)一規(guī)范,但是并不能規(guī)范代碼編寫的風(fēng)格。例如,沒有按規(guī)范使用日志框架打印日志,而使用了System.out;沒有按規(guī)范關(guān)閉輸入流 / 輸出流。這種代碼質(zhì)量的問題,則需要使用一些靜態(tài)代碼掃描工具,進行掃描,然后再進行修復(fù)。例如,使用 sonar 靜態(tài)代碼掃描,sonar 由2部分組成,分別是 SonarQube 平臺,SonarScanner掃描器。
SonarQube: WEB 界面管理平臺
展示所有的項目代碼的質(zhì)量數(shù)據(jù)
配置質(zhì)量規(guī)則、管理項目、配置通知、配置SCM等
SonarScanner: 代碼掃描工具
專門用來掃描和分析項目代碼。支持20+語言
代碼掃描和分析完成之后,會將掃描結(jié)果存儲到數(shù)據(jù)庫當(dāng)中,在sonarQube平臺可以看到掃描數(shù)據(jù)。
SonarQube 和 SonarScanner 之間的關(guān)系

以上只是接受了一種靜態(tài)代碼掃描的方案,有錢的大公司也會購買 Fortify,這種大型的商業(yè)軟件進行代碼掃描。
0x03:動態(tài)掃描 (安全掃描)
靜態(tài)掃描就是不運行程序,通過掃描源代碼的方式檢查漏洞;動態(tài)掃描則是在運行程序下,通過接口滲透的方式檢查漏洞。在這種方案下,可以檢查到 SQL 注入、XSS 腳本攻擊、越權(quán)、目錄列表等漏洞。這塊常見的解決方案是 IBM 公司的AppScan 安全掃描工具(IBM Security App Scan Standard)。
AppScan 是 IBM 的一款 web 安全掃描工具,可以利用爬蟲技術(shù)進行網(wǎng)站安全滲透測試,根據(jù)網(wǎng)站入口自動對網(wǎng)頁鏈接進行安全掃描,掃描之后會提供掃描報告和修復(fù)建議等。AppScan 有自己的用例庫,版本越新用例庫越全(用例庫越全面,對漏洞的檢測較全面,被測試系統(tǒng)的安全性則越高)
工作原理:
通過探索了解整個 web 頁面結(jié)果
通過分析,使用掃描規(guī)則庫對修改的 HTTP Request 進行攻擊嘗試
分析 Response 來驗證是否存在安全漏洞
鏈接:https://pan.baidu.com/s/19TAHl8lYGmE0O753ULyzYA
密碼:yvle
如果想嘗試使用 AppScan 可以參考以上博客
https://blog.csdn.net/u010013191/article/details/80733170
喜歡,在看
