From 0def6daf044903e618d56699e116a6bb477502cc Mon Sep 17 00:00:00 2001 From: Your Name Date: Mon, 15 Jun 2026 16:11:53 +0800 Subject: [PATCH] =?UTF-8?q?docs(iwooos):=20=E8=A8=98=E9=8C=84=E5=89=8D?= =?UTF-8?q?=E5=8F=B0=E6=95=8F=E6=84=9F=E8=B3=87=E8=A8=8A=E9=98=B2=E6=B4=A9?= =?UTF-8?q?=E6=BC=8F=E9=A9=97=E8=AD=89=20[skip=20ci]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/LOGBOOK.md | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/docs/LOGBOOK.md b/docs/LOGBOOK.md index b1b6d4cb..09ddbe02 100644 --- a/docs/LOGBOOK.md +++ b/docs/LOGBOOK.md @@ -1,3 +1,51 @@ +## 2026-06-15|前台敏感資訊防洩漏 Guard 與 public runtime config 可視化 + +**背景**:AwoooP / IwoooS 前台不可暴露原始 owner / repo namespace、內部 blocked 狀態、工作視窗溝通內容、內網 IP 或可識別個人資訊。本階段把前台敏感資訊檢查從人工掃描提升為可重跑 guard 與 snapshot,並將 public / admin / API runtime config 的防洩漏成熟度放到 IwoooS 前台;仍只做只讀驗證,不授權 route / CORS / env / deploy / runtime 變更。 + +**完成項目**: +- `scripts/security/public-frontend-env-guard.py` 擴充為前台 source / messages 敏感面 guard,掃描 `apps/web/src` 與 `apps/web/messages` 的 `.json`、`.mdx`、`.ts`、`.tsx` 檔案。 +- Guard 固定 `225` 個前台檔案、`12` 類禁字 / 禁樣式、`2` 個既有遮罩器 allowlist、violations `0`、runtime gate `0`。 +- 新增 `docs/security/public-frontend-sensitive-surface-guard.snapshot.json`,把前台 sensitive surface 檢查結果納入 `security-mirror-progress-guard`。 +- `public_admin_api_runtime_config` 只讀成熟度從 `64%` 推進到 `66%`,狀態為 `frontend_sensitive_surface_guard_ready_needs_runtime_config_owner_evidence`。 +- 高價值配置平均成熟度從 `69%` 推進到 `70%`;needs-live-evidence 類別維持 `10`。 +- `/zh-TW/iwooos` 前台顯示 `Public / admin / API runtime config`、`66%`、前台 source / messages、`225 個檔案`、`12 類禁字`、`違規 0` 與 runtime gate `0`;`en.json` 維持繁中鏡像。 + +**本地驗證**: +- `python3 scripts/security/public-frontend-env-guard.py --root .` → `OK public frontend sensitive surface guard files=225 patterns=12 allowlisted=2 violations=0 runtime_gate=0`。 +- `python3 scripts/security/iwooos-config-control-guard.py --root .` → `IWOOOS_CONFIG_CONTROL_GUARD_OK`。 +- `python3 scripts/security/security-mirror-progress-guard.py --root .` → `SECURITY_MIRROR_PROGRESS_GUARD_OK`。 +- `python3 scripts/security/source-control-owner-response-guard.py --root .` → `SOURCE_CONTROL_OWNER_RESPONSE_GUARD_OK`。 +- `python3 scripts/security/package-supply-chain-owner-policy-guard.py --root .` → `PACKAGE_SUPPLY_CHAIN_OWNER_POLICY_GUARD_OK`。 +- `python3 scripts/ops/doc-secrets-sanity-check.py docs .gitea` → `DOC_SECRET_SANITY_OK scanned_files=872`。 +- `pnpm --filter @awoooi/web typecheck` 通過。 +- `git diff --check` 通過。 +- 前端 source / messages 掃描未在產品文案中命中工作視窗內容、原始 owner namespace、raw blocker 狀態或前台內網 IP;僅保留既有遮罩器 allowlist。 + +**Gitea / CD**: +- Guard code commit:`65f2d50d feat(iwooos): 強化前台敏感資訊防洩漏 guard`。 +- 可視化補正 commit:`5d400376 fix(iwooos): 顯示前台防洩漏成熟度`。 +- Code-review runs:`3045`、`3047`,皆成功。 +- CD runs:`3044`、`3046`,皆成功。 +- Deploy markers:`f5b6ab75 chore(cd): deploy 65f2d50 [skip ci]`、`157542de chore(cd): deploy 5d40037 [skip ci]`。 + +**Production 驗證**: +- in-app browser:`/zh-TW/iwooos?_v=157542de-public-sensitive-visible-smoke` 顯示 IwoooS、`70%`、`Public / admin / API runtime config`、`66%`、前台 source / messages、`225 個檔案`、`12 類禁字`、`違規 0`;console error `0`;頁面水平溢出 `0`;敏感字串命中 `0`。 +- Browser desktop `1280x720`:`/zh-TW/iwooos?_v=157542de-public-sensitive-fixed-desktop` 回 `200`,console error `0`,`horizontalOverflow=0`,必填文案缺漏 `0`,敏感字串命中 `0`。 +- Browser mobile `390x844`:`/zh-TW/iwooos?_v=157542de-public-sensitive-fixed-mobile` 回 `200`,console error `0`,`horizontalOverflow=0`,必填文案缺漏 `0`,敏感字串命中 `0`。 +- Browser mobile `390x844` 補充 route smoke:`/zh-TW/governance?tab=automation-inventory`、`/zh-TW/awooop/tenants`、`/zh-TW/code-review` 皆回 `200`、console error `0`、`horizontalOverflow=0`、敏感字串命中 `0`;Tenants 已不顯示原始 owner / repo namespace、raw blocker 狀態或內網 IP。 +- Browser 截圖: + - `/tmp/awoooi-iwooos-desktop-1280x720-157542de.png` + - `/tmp/awoooi-iwooos-mobile-390x844-157542de.png` + +**完成度與邊界**: +- Frontend public sensitive surface guard:`0% -> 100%`。 +- Public / admin / API runtime config 只讀成熟度:`64% -> 66%`。 +- 高價值配置平均成熟度:`69% -> 70%`;needs-live-evidence 類別維持 `10`。 +- IwoooS headline 維持 `64%`;active runtime gate 維持 `0`。 +- raw namespace exposure、work window transcript exposure、raw blocker exposure、internal IP exposure、frontend sensitive source violations、production sensitive smoke violations 全部為 `0`。 +- route / CORS / env / deploy / runtime owner acceptance、live runtime config owner evidence、host write、Nginx reload、Docker / service restart、firewall / iptables change、active scan、secret collection、production write、action button 全部維持 `0 / false`。 +- 本輪未 SSH、未讀 live conf raw payload、未改 Nginx、未重啟 Docker / service、未修改 firewall / iptables、未執行 active scan、未收 secrets 明文、未 force push。 + ## 2026-06-15|備份 / 還原 / 金庫 restore recovery 回補 Gate **背景**:備份與還原不能只看「有備份」或「health 顯示正常」,也不能把 offsite sync、remote delete、credential escrow、retention 或 restore drill 的 UI 可見狀態誤判成已授權。本階段補強 Backup / Restore / Escrow owner response acceptance,只建立只讀收件欄位、reviewer checks、outcome lanes、blocked actions 與前台可視化;不執行 backup、不 restore、不跑 offsite sync、不 remote delete、不寫 escrow marker、不改 retention、不讀 secret value、不碰主機。