-
Notifications
You must be signed in to change notification settings - Fork 29
report_feedback 入口应做 HTML sanitize 防止存储型 XSS #97
Copy link
Copy link
Closed
Labels
securitySecurity related issuesSecurity related issues
Description
问题
report_feedback MCP 工具接受用户反馈时,未对输入做 HTML 转义/消毒,<script> 等标签可原样入库。
当前状态
- 风险等级:🟢 低(当前管理后台无 feedback 展示页面,无渲染路径)
- 隐患:
⚠️ 存储型 XSS 定时炸弹 — 数据库中已存在未转义 HTML,未来若新增 feedback 展示页且未做转义,将直接触发存储型 XSS
验证过程(2026-03-28)
- Admin API — OpenAPI spec 中无 feedback 相关查询端点
- Admin 前端 — React + Ant Design,主 bundle 中 feedback / dangerouslySetInnerHTML / innerHTML 出现次数均为 0
- MCP 工具 — report_feedback 正常接收含 script 标签的文本并返回 success
建议修复
在 report_feedback 写入数据库前,对 feedback_message 做 HTML sanitize(推荐使用 bleach 或等效库的 clean() 方法 strip 所有 HTML 标签)。
防御写在入口比防御写在出口可靠 — 入口只有 1 个,出口可能有 N 个。
参考
- OWASP Top 10 for LLM 2025
- QA 学习笔记 ci(workflows): 添加 S3 兼容存储同步步骤 #16(安全攻防)
- 明察、明鉴、墨子协作验证
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
securitySecurity related issuesSecurity related issues