SEC-007 P1: Deep Link 參數未驗證和淨化

Resolved 💬 2 comments Opened Mar 22, 2026 by stephen-taipei Closed Mar 25, 2026

問題描述

AppCoordinator 的 handleDeepLink 方法直接將 URL 參數轉發至內部導航,未檢查參數格式、長度或內容。

檔案位置

ios-swift/Connectors/Core/Navigation/AppCoordinator.swift

詳細說明

handleDeepLink 直接使用 URL 參數(如 contactId)進行資料庫查詢或導航,未驗證:

  • 參數格式(非 UUID 格式)
  • 參數長度(可能超長導致 DoS)
  • SQL injection(若直接用於 SQL 查詢)
  • 路徑遍歷(如 connectors://contact/../../admin)

風險評估

  • 路徑遍歷攻擊
  • 參數注入(SQL injection、XSS)
  • DoS 攻擊(超長字符串)
  • 未授權訪問(跳過認證導航到受保護頁面)

解決方案

  1. 實施白名單驗證(已知 ID 格式、長度限制)
  2. 使用 URLComponents 安全解析 URL
  3. 驗證用戶是否有權訪問該資源
  4. 記錄可疑的 deep link 企圖供審計

View original on GitHub ↗

This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗