本卡屬 FR-098(母卡見子卡清單),第 2 棒:資訊系統全鏈(jedi-asset 套件)。只掃不修。在 A1 驗收完成之後才派。
「資訊系統」是客戶的系統清冊——有哪些系統(人事系統、財務系統、客服系統),各自歸誰負責、風險等級多高。合規文件(系統安全計畫)會引用這張清冊,稽核時要對照它。
這一棒掃資訊系統那半的完整路徑(15 個檔案)+ 共用骨架重疊帶入(27 個檔案),共 42 檔。
要回答的核心問題:誰看得到、誰改得動別家客戶的系統清冊。
與第 1 棒的風險形狀相近但資料不同:設備是機器,資訊系統是業務系統的清單與風險評級,外洩等於把客戶的系統架構與弱點盤點交出去。而且這張清冊被合規文件引用(主專案的資源庫會查它),是跨模組的接縫。
⚠️ 共用骨架與第 1 棒重疊是刻意的——切在接縫上兩棒都看不到全貌。重複報由首腦驗收時挑掉,接縫沒人看才是真的損失。
jedi_asset/api/routes/information_system_route.py:選單(:42)、清單(:59)、明細(:102)只掛 @auth_required;新增(:82)、修改(:114)、刪除(:135)都多掛 @capability_required。與第 1 棒的設備那半、以及 FR-096 第 72 項完全同形。要追:這三支讀取端點回什麼、明細端點吃的是編號(uid)——猜得到別人的編號就讀得到嗎。FORCE ROW LEVEL SECURITY 是開的(連表的擁有者都擋),設備表只開一般模式。腳本檔頭說明強制模式是 CM-1678 補的,起因是「開發環境這張表的擁有者正好是應用程式連線帳號本人,只開一般模式等於沒開——實測擋全部的規則仍讀得到全部 83 筆」。要追:這個修補有沒有留下副作用、以及第 1 棒那張表現在是不是正處於檔頭描述的那個「等於沒開」的狀態(本棒若查出來,請寫進報告並標明它其實屬第 1 棒範圍)。app/oscal/service/ssp_resources_context_service.py:148 會 import 資訊系統的查詢物件。要追:那條路徑讀資訊系統時走不走同一套隔離與權限(該檔屬主專案、不在本棒範圍,但若在套件這側看到「給外部呼叫用、不檢查權限」的方法,請標明並指出呼叫者)。第一步:驗 scope 檔數,對上 42 才啟動: