本卡屬 FR-120(母卡待填)。這是一張實作卡(寫一支腳本),不是掃描卡。U13a/U13b 兩棒要帶著這支腳本的輸出結果去派。

問題是什麼(白話)

主專案用一套叫「依賴注入」(DI,Dependency Injection)的機制組裝程式:每個服務(service)在自己的程式裡宣告「我需要用到哪些零件」(例如需要一個「檢查權限」的零件),另外有一批「容器」設定檔負責在系統啟動時把這些零件實際接上去。如果容器設定檔忘記接某個零件,服務本身完全不會報錯——它只是拿到一個空的或錯的零件,然後在執行時默默地跳過該做的檢查。這種「少接一條線」的問題,過去已經抓到至少兩次真實案例(合規稽核套件與 SSP 套件都出現過),而且掃描工具找不到這種問題——工具擅長找「程式邏輯寫錯」,不擅長找「應該要有卻沒有出現的東西」。這張卡要寫一支腳本,把 75 支容器設定檔全部讀過一遍,自動列出「哪個服務缺了哪個零件」。

在哪裡

/Users/chouraymond/Projects/Billows/Audit-Manager/compliance-manager-be/di_containers/          # 各模組的容器設定檔
/Users/chouraymond/Projects/Billows/Audit-Manager/compliance-manager-be/core/plugins/             # 套件接線
/Users/chouraymond/Projects/Billows/Audit-Manager/compliance-manager-be/config/di_modules.py     # 自動掃描要 wire 哪些模組
(共 75 支、11,062 行,扣除 0 行的 __init__.py)

怎麼修

先查再寫:這支是全新腳本,scripts/security/ 目錄如果已有同類工具(AST 解析、DI 稽核)先確認沒有重複造輪子;dependency-injector 套件的 providers.Factory/providers.Singleton 用法可參考任一支既有容器檔(例如 di_containers/containers.py)。

要寫測試

手測

連帶

紀律