安全程式設計課程輔助教材 – Lab 2 自動化程式碼分析

自動化分析程式碼流程圖

上傳程式碼至 GitLab
登入 GitLab
進入 GitLab 網頁:http://140.124.181.128/
- 帳號:2025_02_112C72003_user(年份_學期_學號_user),學號裡有英文字要大寫
- 預設密碼: handsomecysun1321

改成自己想要的密碼(如沒跳出這個步驟,可直接跳過)

改完密碼後會要求再次登入(如沒跳出這個步驟,可直接跳過)

新建檔案,點選下圖進入 Project 頁面

點選 + 號按鈕 → “New file”

輸入檔案名稱 (example.py) 與程式碼 → 按下 “Commit changes”
# 1. 過度複雜的函數
#會被 sonarQube 提示 code smell(異味) 的寫法
def complex_function(a, b, c):
if a > 5:
if b < 10:
if c == "foo":
return True
return False
# 2. 不明確的異常
#會被 sonarQube 提示 code smell(異味) 的寫法
try:
result = 10 / 0
except:
pass
點選 “project” 並確認檔案建立成功

Jenkins 自動執行 SonarQube 分析
Jenkins 網頁:http://140.124.181.128:8081/
- 帳號:student
- 密碼:123

使用搜尋找到自己的名稱(名稱和 GitLab Project 的名稱一樣)

進入後如果有看到進度條,表示專案還在建置中,要等待它完成 (人多的時候會需要等比較久,有可能到 2-3 分鐘以上)

進度條消失後表示建置完成,點選 SonarQube 連結進入觀看結果

到 SonarQube 頁面觀看分析結果
登入 SonarQube
- 帳號:student
- 密碼:123

觀看掃描結果
- 確認學號是否正確
- 選 “代碼”
- 確認檔案
- 確認 “代碼行數”(如果有顯示行數表示有正確執行掃描,如果行數是顯示 “-” 符號,表示沒有被 SonarQube 掃描到,可能是不支援的程式碼,或是副檔名有錯誤。)
- 觀看是否有問題,像是 Bug 漏洞 異味…

觀看修改建議並修改程式碼
- 點選 “問題”
- 點選第一個建議

- 點選 “問題位置”
- 可以看到發生問題的程式碼位置

- 點選 “問題原因”
- 可以看到詳細的說明

依照 SonarQube 提示更改程式碼
回到 GitLab 頁面 → 點選 “example.py”

點選 ” Open in Web IDE ”

修改程式碼 → 按下“Create commit…”
# 1. 過度複雜的函數
#"不會"被 sonarQube 提示 code smell(異味) 的寫法
def complex_function(a, b, c):
if a > 5 and b < 10 and c == "foo":
return True
else:
return False

- 選擇 “Commit to main branch”
- 點選 “Commit”

- 到 Jenkins 頁面確認建置完成(http://140.124.181.128:8081/)
- 進入 SonarQube 頁面

- 點選 “代碼”
- 可以看到問題減少了

其他上傳程式碼至 GitLab 的方法
透過 GitLab 網頁上傳檔案
到 project 頁面
點 + 符號
點 “Upload file”
點選 “upload” 並選擇要上傳的檔案

點選 “upload” 並選擇要上傳的檔案

點選 “Upload file”

顯示上傳成功,此時 Jenkins 會自動建置並自動使用 SonarQube 分析程式碼

影片說明
共 11 部影片