SAST 靜態分析

Vibe Prompt

「幫我在 GitHub Actions 中加入 SonarQube 掃描,檢查 JavaScript/TypeScript 的安全漏洞。」

GitHub Actions + SonarQube

name: SAST Scan

on:
  push:
    branches: [main, develop]
  pull_request:
    branches: [main]

jobs:
  sonar:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: SonarQube Scan
        uses: SonarSource/sonarcloud-github-action@master
        env:
          SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

CodeQL 掃描

- name: Initialize CodeQL
  uses: github/codeql-action/init@v3
  with:
    languages: javascript, python

- name: Autobuild
  uses: github/codeql-action/autobuild@v3

- name: Perform CodeQL Analysis
  uses: github/codeql-action/analyze@v3
  with:
    category: "/language:javascript"

SAST 工具比較

| 工具 | 語言 | 類型 | |------|------|------| | SonarQube | 多語言 | 程式碼品質 + 安全 | | CodeQL | 多語言 | 深層安全分析 | | Snyk | 多語言 | 開源漏洞 + IaC | | Semgrep | 多語言 | 自訂規則 | | Bandit | Python | 安全掃描 |

Vibe Prompt

「幫我寫 Semgrep 規則:檢測 Python 程式碼中的 SQL Injection。」

rules:
  - id: sql-injection-detection
    patterns:
      - pattern: |
          $CURSOR.execute("..." + $USER_INPUT + "...")
      - pattern: |
          f"SELECT ... WHERE id = {$USER_INPUT}"
    message: "偵測到可能的 SQL Injection"
    languages: [python]
    severity: ERROR

本章總結

  • 理解核心概念與原理
  • 掌握實作方法與技巧
  • 熟悉常見問題與解決方案
  • 能夠應用於實際專案

延伸閱讀

  • 官方文件與 API 參考
  • GitHub 開源專案範例
  • 相關技術書籍與課程
  • 社群討論與技術部落格

實作範例

基礎範例

# 本節提供一個完整的實作範例
# 讓你能夠將所學應用到實際專案中

步驟說明

  1. 初始化:設定開發環境與必要工具
  2. 資料準備:收集與整理所需資料
  3. 核心實作:實作主要功能與邏輯
  4. 測試驗證:確保功能正確運作
  5. 最佳化:調整效能與使用者體驗

常見錯誤

| 錯誤類型 | 可能原因 | 解決方法 | |---------|---------|---------| | 編譯錯誤 | 語法問題 | 檢查程式碼語法 | | 執行錯誤 | 環境問題 | 確認相依套件已安裝 | | 邏輯錯誤 | 演算法問題 | 逐步除錯與測試 | | 效能問題 | 效率問題 | 使用效能分析工具 |

程式碼範例

# 範例程式碼
import sys

def main():
    # 主程式邏輯
    print("Hello, World!")

if __name__ == "__main__":
    main()

相關資源

  • 官方文件
  • API 參考手冊
  • 開源專案範例
  • 技術社群討論

会員限定無料チュートリアル

このチャプターは登録会員限定の無料コンテンツです!ログインまたは登録してすぐにロックを解除してください。

今すぐログイン / 登録