furniture-3d-system-Wu/furniture-3d-system/docs/solutions/security-issues/collaborator-email-minimization-20260215.md
WuYongJie 5821d73291 初始提交:3D家具安装展示系统
包含:
- furniture-3d-system:Next.js 16 全栈应用(资产中心、产品管理、3D装配动画)
- autocad-plugin:AutoCAD 家具导出插件源码
- 资产中心改造:编辑弹窗化、删除功能、Toast反馈、自定义Select组件

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-02 14:00:19 +08:00

1.3 KiB

title, date, module, problem_type, severity, symptoms, root_cause, resolution_type, status, confidence, tags, related_patterns
title date module problem_type severity symptoms root_cause resolution_type status confidence tags related_patterns
协作者列表默认暴露邮箱,需最小化返回字段 2026-02-15 product-collaborator security_issue high
协作者 GET 对有查看权限用户默认返回创建者与协作者邮箱
造成组织敏感信息过度暴露
数据最小化策略缺失,读取权限与敏感字段权限未分离 code_fix active high
security
privacy
collaborators
pii
SEC-COLLAB-PII-001

现象与影响

即使用户仅具备产品可见权限,也能读取所有协作者邮箱,扩大了员工账号信息暴露面。

修复动作

  1. 保留 canViewProduct 作为协作者列表读取前置条件。
  2. 新增 canManage 判定,仅当通过 canManageCollaborators 时返回邮箱字段。
  3. 默认返回中将创建者与协作者 email 置为 null,满足“最小必要信息”原则。

验证

  • npm run type-check -- --pretty false 通过
  • npm test -- tests/lib/cad-panel-linking.test.ts --runInBand 通过
  • npm test -- tests/api/auth-me.test.ts --runInBand 通过

预防策略

  • API 设计区分“可查看资源”与“可查看敏感字段”两层权限。
  • 新增返回字段时默认走最小化策略,敏感字段须显式授权后释放。