本卡屬 FR-114 資安修正(母卡 CM-2019),b4 驗證卡 V1:在 190(1.21.0b4)用 API 實打「權限/隔離:問卷、稽核流程、任務成員、合規文件、稽核輪次」59 條非 UI 驗證項。只驗不修。清單索引
docs/features/FR-114-2609-security-fix-dispatch/verify/b4-verify-list.json的V1。
資安修正六批+b3/b4 補修已經全部裝上 190 總測機。決策者手測的是畫面能點到的 22 條;剩下 147 條是「用 API 送壞請求看有沒有被擋」「送超大值看會不會被打垮」「上主機翻殘留」這類畫面驗不到的。本卡做其中 59 條:每條都是「非成員或低角色去讀/寫別人專案的東西」。用五個角色帳號各拿一把 token,對同一個資源分別打,記每個角色的 HTTP 碼。
error_code 是 GRC_*,不是 500。500 一律記 ❌。ssh [email protected](免密)。BE=guidant-ai-be:1.21.0b4,FE 同版,agent 1.1.0b2,九個容器 healthy。網址 https://192.168.50.190(自簽憑證,curl 加 -k)。API 前綴 /api/1.0。docker logs guidant-api --since 30m;DB 唯讀:docker exec guidant-db psql -U cmmgr -d guidant_ai -tAc "<SQL>";redis:docker exec guidant-redis sh -c 'redis-cli -a "$REDIS_PASSWORD" <cmd>'(密碼在容器 env,不要抄出來)。07f4dcab-e7c7-4b89-8b43-0bc787b564f2。密碼與 DEV 測試帳號相同,查 memory reference_dev_login.md,不寫進卡、回報、commit。POST /api/1.0/login body {"username":"<帳號>","password":"<密碼>"} → 回 mfa_required:true;② docker exec guidant-redis sh -c 'redis-cli -a "$REDIS_PASSWORD" get otp_code:<users.id>';③ POST /api/1.0/otp-verify body {"uid":"<users.uid>","type":"email","code":"<碼>"} → data.access_token。之後帶 Authorization: Bearer <token>。寫成一支小 shell function 給每個帳號各拿一把 token,全卡重用;驗證碼與 token 一律不寫進回報。python scripts/notion_case.py get CM-xxxx 讀)。本卡不另寫測法;修正卡手測段寫的是 DEV,你把同一步驟改在 190 用 API 打。修正卡沒手測段或步驟對不上 190 資料時,照本卡條目的白話描述自擬一條「攻擊者做 X → 期待被擋(HTTP 4xx+error_code);正常角色做 X → 期待成功」,並在結果表註明「自擬」。