CRITICAL
无。
HIGH
- 问题:删除接口只校验登录态,没有校验资源 owner。
- 位置:
app/api/projects/[id]/route.ts DELETE - 为什么:任意登录用户只要猜到 id 就可能删除他人项目,属于越权写。
- 建议:在删除前查询项目 owner,并在不匹配时返回 404。
MEDIUM
- 问题:列表接口未限制分页大小。
- 位置:
server/repositories/project.ts listProjects - 为什么:大账号或恶意请求会触发无界查询,影响数据库稳定性。
- 建议:对
limit设置上限,例如 100,并提供默认值。
LOW
无。
合并前必须先处理的项
- 补上删除接口 owner 校验。
- 给列表查询加分页上限和测试。