Skip to content

report_feedback 入口应做 HTML sanitize 防止存储型 XSS #97

@firstdata-dev

Description

@firstdata-dev

问题

report_feedback MCP 工具接受用户反馈时,未对输入做 HTML 转义/消毒,<script> 等标签可原样入库。

当前状态

  • 风险等级:🟢 低(当前管理后台无 feedback 展示页面,无渲染路径)
  • 隐患:⚠️ 存储型 XSS 定时炸弹 — 数据库中已存在未转义 HTML,未来若新增 feedback 展示页且未做转义,将直接触发存储型 XSS

验证过程(2026-03-28)

  1. Admin API — OpenAPI spec 中无 feedback 相关查询端点
  2. Admin 前端 — React + Ant Design,主 bundle 中 feedback / dangerouslySetInnerHTML / innerHTML 出现次数均为 0
  3. MCP 工具 — report_feedback 正常接收含 script 标签的文本并返回 success

建议修复

在 report_feedback 写入数据库前,对 feedback_message 做 HTML sanitize(推荐使用 bleach 或等效库的 clean() 方法 strip 所有 HTML 标签)。

防御写在入口比防御写在出口可靠 — 入口只有 1 个,出口可能有 N 个。

参考

Metadata

Metadata

Assignees

No one assigned

    Labels

    securitySecurity related issues

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions