Cherry-picked SEED_DEMO_USERS separately; document npm test gate, session retire in 00046, and P2 follow-ups. Co-authored-by: Cursor <cursoragent@cursor.com>
1.9 KiB
1.9 KiB
title, status, created, updated, owner
| title | status | created | updated | owner |
|---|---|---|---|---|
| Demo/测试数据污染系统性审计 | done | 2026-09-16 | 2026-09-16 | Cursor-Auto |
Demo / 测试数据污染系统性审计
前序
本审计在 2026-09-15 mock 交付物污染真实项目(及对应 整改)之上收敛为全栈系统性排查:前端门控、goose 演示项目/会话、stub API。
背景
空项目展示「终审已生效」受控文档 + 伪造三级职责人。初判怀疑 docgov 隔离失败;实锤为前端 mock/seed 与 DB goose 演示种子污染。
结论
| 面 | 判定 | 说明 |
|---|---|---|
服务端 document_records / project_docs |
正常 | 按 project_id 隔离;空项目台账为 0 |
前端 ALL_INITIAL_DELIVERABLES / mockDocuments |
critical | 无门控进生产包;projectId 1/2/3 撞车 |
| 前端 DEFAULT_PROJECTS / sessions / MOCK_USERS | critical/high | NeuroPulse 5201、CUSA id=3、6001–6010 |
deliverableSync 空清单 return prev |
critical | 权威空列表不回收本地 mock |
isLegacyLocalMockDocId 覆盖不全 |
critical | 未覆盖 neuropulse / ten-projects |
Goose 00011/00012 |
critical | 全环境写入 6001–6010 + 聊天 |
API backend=stub |
high | main 仍可请求 stub |
BootstrapDevSeedUsers |
OK | 已有 env 门控 |
证据路径
web/src/App.tsx(整改前 INITIAL_*)web/src/data/mockDocuments.ts/neuropulseDemo.ts/tenProjectsDemo.tsweb/src/lib/deliverableSync.tsdeploy/postgres/goose/00011_*.sql/00012_*.sqlinternal/taskrun/backend.go- 产物扫描:
scripts/check-prod-bundle.sh