本卡屬 FR-114 資安修正(母卡 CM-2019),第 5 批子集 C 卡 5C-6,修 SUMMARY #101(M23-5)。高——供應鏈最根本的洞,且需獨立跑或排在最後(序列組 E,動到每一支 pyproject.toml,會與其他套件卡衝突)。計畫在 docs/features/FR-114-2609-security-fix-dispatch/batches/plan-b5C.md「卡 5C-6」段。

問題是什麼(白話)

開發與建置機器安裝套件時,連到公司內部套件庫(Nexus)用的是不加密連線——這是安裝套件的主要來源,同樣的問題在另外兩個不相關的地方(共用基礎層、稽核工作流引擎)也各自獨立被抓到,證實「這不是某一支套件的疏忽,而是每一支都一樣」。版本鎖定檔(用來驗證套件沒被竄改的雜湊比對檔)現況也「只做了一半」:套件monorepo 那邊完全沒有——27 支套件裡有 17 支本機已產生這份檔案,但一支都沒有進版控,全被忽略規則擋住;主專案這邊已經修好,2026-08-15 起已入版控。

🔴 明確排除,不要順手併掉「第 6 項」:FE image 建置腳本裡,緊鄰那條明文網址的下一行寫死了帳號密碼——這是另一個不同的問題、不同的修法(M23 第 6 項,已是 CM-1998 的處理範圍,第 4 批已處理)。因為兩行緊挨著,容易讓修「連線未加密」的人順手看到憑證那行卻沒意識到那是另一件事而略過或誤動。若在本卡工作中看到那行憑證,不要動它,在回寫寫明「那行屬於 CM-1998」。

首腦核對:

工作區

在哪裡

compliance-manager-be/pyproject.toml:161    url = "<http://192.168.50.171:8082/repository/pypi-group/simple>",主專案
jedi-detection/pyproject.toml:66    同樣明文網址
jedi-flow-engine/pyproject.toml:46    同樣明文網址
jedi-compliance-audit/pyproject.toml:63    同樣明文網址
jedi-system-core/pyproject.toml:67    同樣明文網址
archive/jedi-information-system/pyproject.toml:47    已封存套件,同樣要改
archive/jedi-log-forwarding/pyproject.toml:43    已封存套件,同樣要改
archive/jedi-system-config/pyproject.toml:54    已封存套件,同樣要改
archive/jedi-participant/pyproject.toml:34    已封存套件,同樣要改
(其餘現役套件同樣一行,位置各異,不重複列——runner 開工第一步用 grep -rn '<http://192.168.50.171:8082>' --include='pyproject.toml' 兩個 repo 取得完整 28 支清單)
各套件 .gitignore    擋住 poetry.lock 入版控的規則,鎖定檔納管目標
⚠️ 明確不動:FE image 建置腳本裡緊鄰明文網址下一行的帳號密碼寫死,那是 CM-1998(第 4 批)範圍,看到不要動

怎麼修

D-b5C-8 決策者已裁「先查證再動手」;D-b5C-9 決策者已裁照建議寫成定案。

🔴 D-b5C-8 動手前必須先查證,這是本卡能不能繼續下去的前提:Nexus(192.168.50.171:8082)目前是否已經有加密連線可用?runner 第一步只做唯讀查證並回報(例如 curl -I https://192.168.50.171:8443),不要先改任何檔案——若 Nexus 沒有 TLS,把所有 URL 一次改成 https:// 會讓每一台開發機與建置機的 poetry install 立刻失敗,這是基礎設施層的前提,不是程式問題。若查到沒有 TLS,本卡拆成「先幫 Nexus 上憑證(基礎設施工作,不在本卡)」+「之後再切全部 URL」兩階段,第一階段屬另一個決策,查證後回寫本卡、狀態留 Not started,等回覆再繼續。

手測