包含: - furniture-3d-system:Next.js 16 全栈应用(资产中心、产品管理、3D装配动画) - autocad-plugin:AutoCAD 家具导出插件源码 - 资产中心改造:编辑弹窗化、删除功能、Toast反馈、自定义Select组件 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1.3 KiB
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 | |||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Panel 写操作缺少 Service 层权限护栏 | 2026-02-15 | panel-service | security_issue | critical |
|
权限逻辑集中在 Route,Service 层缺少防线 | code_fix | active | high |
|
现象与影响
板件创建接口在 Route 层做了登录+编辑权限校验,但 panel.service.ts 的 create/update/delete/importFromZip 在写库前不校验产品编辑权限。
一旦存在绕过 Route 的调用(内部复用、脚本、后续新增路由等),会造成跨产品越权写入。
修复动作
- 在 Service 层新增
assertCanEditProduct权限护栏。 - 新增
parseCollaborators解析 JSON 协作者列表,兼容权限函数输入。 - 将护栏接入
create/update/delete/importFromZip四个写操作。
验证
npm run type-check -- --pretty false通过
预防策略
- 所有写操作必须“Route + Service 双层权限校验”。
- 新增写接口时,优先复用统一权限护栏方法,避免每个方法重复拼装权限对象。