安全程式設計課程輔助教材 – 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

觀看掃描結果

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

觀看修改建議並修改程式碼

  1. 點選 “問題”
  2. 點選第一個建議
  1. 點選 “問題位置”
  2. 可以看到發生問題的程式碼位置
  1. 點選 “問題原因”
  2. 可以看到詳細的說明

依照 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
  1. 選擇 “Commit to main branch”
  2. 點選 “Commit”
  1. 到 Jenkins 頁面確認建置完成(http://140.124.181.128:8081/)
  2. 進入 SonarQube 頁面
  1. 點選 “代碼”
  2. 可以看到問題減少了


其他上傳程式碼至 GitLab 的方法

透過 GitLab 網頁上傳檔案

到 project 頁面
點 + 符號
點 “Upload file”
點選 “upload” 並選擇要上傳的檔案

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

點選 “Upload file”

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

影片說明

共 11 部影片

致謝

特別感謝 李昆積陳勝舢顏柏耀 助教群協助製作。

You may also like