docs(iwooos): 記錄前台敏感資訊防洩漏驗證 [skip ci]
This commit is contained in:
@@ -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、不碰主機。
|
||||
|
||||
Reference in New Issue
Block a user