baodan/frontend
wsb1224 751302205a 文件 问题 严重度
1	poster/routes.py:156	下载路径硬编码,与实际存储路径不一致 → 下载 404	P0
2	poster/service.py:41	get_reviewed_products() N+1 查询	P1
3	poster/service.py:169,226	json.loads 无异常处理 → 数据损坏时崩溃	P1
4	3 个 model 文件	to_dict() 中 json.loads 无防御 → 序列化崩溃	P1
5	poster/tasks.py	~120 行死代码(线程版海报生成)	P2
6	generation/celery_tasks.py	parse_poster_task + _execute_poster_parse 死代码(~70 行)	P2
7	generation/task_service.py	对应移除 ("poster", "parse") 映射	P2
8	utils/security.py	SSRF TOCTOU:DNS 检查与请求之间的时间窗口可被 DNS rebinding 利用 → 新增 _SafeHTTPTransport 在连接时重新验证 IP	P1 安全
9	poster/image_generator.py	anchor="mm" 在旧 Pillow 默认字体上崩溃;改用 hasattr 检测	P1
前端(3 项)
#	文件	问题	严重度
10	poster-api.ts:54	downloadPoster() 返回 AxiosResponse 而非 Blob → 海报永远无法下载	P0
11	PosterStepUpload.vue	解析轮询无超时 → 无限轮询	P1
12	PosterStepPreview.vue	生成轮询无超时 → 无限轮询	P1
修改的文件总计
后端 7 个:security.py, image_generator.py, service.py, routes.py, tasks.py, celery_tasks.py, task_service.py, poster_case_upload.py, poster_record.py, poster_template_model.py

前端 3 个:poster-api.ts, PosterStepUpload.vue, PosterStepPreview.vue

未修复(确认无需修复)
manual_parser.py — 之前误判为死代码,实际被 Celery 产品小册子解析任务使用,保留不动
llm_client.py 中的 httpx 调用 — URL 来自管理员配置的系统设置,不是用户输入,SSRF 风险极低;加检查反而会阻断合法的私网 LLM 端点
2026-07-29 22:41:27 +08:00
..
src 文件 问题 严重度 2026-07-29 22:41:27 +08:00
docker启动.mc 第一次提交。可以使用企微群消息 2026-07-02 23:13:23 +08:00
index.html 第一次提交。可以使用企微群消息 2026-07-02 23:13:23 +08:00
package-lock.json 第一次提交。可以使用企微群消息 2026-07-02 23:13:23 +08:00
package.json fix(deps): add missing @element-plus/icons-vue dependency 2026-07-27 14:29:08 +08:00
pnpm-lock.yaml fix(deps): add missing @element-plus/icons-vue dependency 2026-07-27 14:29:08 +08:00
pnpm-workspace.yaml 第一次提交。可以使用企微群消息 2026-07-02 23:13:23 +08:00
tsconfig.json 第一次提交。可以使用企微群消息 2026-07-02 23:13:23 +08:00
vite.config.ts 第一次提交。可以使用企微群消息 2026-07-02 23:13:23 +08:00