本卡屬 FR-114 資安修正(母卡 CM-2019),第 2 批「只驗登入、不檢查歸屬」卡 2-4,修 SUMMARY #54/#55/#58/#59(出自 M10-1/M10-2/M10-5/M10-9)。中。修法規格來自內化卡,計畫在 docs/features/FR-114-2609-security-fix-dispatch/batches/plan-b2.md「卡 2-4」段。🔴 本卡要等第 1 批合回主線+套件發版後才能開工。

問題是什麼(白話)

專案成員列表/選單(#54)、控制項層成員選單與新增(#55,新增動作還會連帶洩漏專案層級成員名單)、任務指派列表(#58)都只驗證登入、不檢查專案歸屬。共通修法是三步驟都要做:查詢端點與選單端點都要補守門、專案 id 參數要改成必填、同形狀的端點一起修,缺一步都不夠。

首腦核對:

工作區

套件側:在 /Users/chouraymond/Projects/Jedicogy/module/jedi-python-package/.claude/worktrees/jedi-wt-fix-security/jedi-task-platform(branch fix/security-b1)改,只動自己那支套件的子目錄、只 git add 該子目錄下的檔。

跨 repo:BE 工作區 pyproject.toml 把 jedi-task-platform 的 pin 改成 path 形式指向上面那個套件 worktree,poetry update jedi-task-platform。這個 path 改動不 commit。common/authz/project.py 的介面新增在 BE 側 /Users/chouraymond/Projects/Billows/Audit-Manager/compliance-manager-be/.claude/worktrees/wt-fix-security(branch fix/security-b1)做。

在哪裡

project_participant_route.py:39   #54 專案成員列表,補歸屬檢查
project_participant_route.py:20   #54 專案成員選單,補歸屬檢查(跟列表一起修,不能只修一邊)
project_control_participant_route.py:24   #55 控制項層成員選單,補歸屬檢查
project_control_participant_route.py:52   #55 控制項層成員新增,補歸屬檢查(同時修正會連帶洩漏專案層級成員名單的副作用)
task_assignee_route.py:44   #58 任務指派列表,project_uid 或 task_uid 需擇一必填,並反查歸屬
common/authz/project.py:101   IProjectRoleGuard 介面,新增 assert_participant 方法(決策者已裁「照建議」新增)

怎麼修

手測