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 攻擊(超長字符串)
- 未授權訪問(跳過認證導航到受保護頁面)
解決方案
- 實施白名單驗證(已知 ID 格式、長度限制)
- 使用 URLComponents 安全解析 URL
- 驗證用戶是否有權訪問該資源
- 記錄可疑的 deep link 企圖供審計
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗