Skip to content

fix(security): 防止文本对比/Markdown/正则结果中的 DOM XSS - #3

Draft
cursor[bot] wants to merge 1 commit into
mainfrom
cursor/critical-bug-inspection-4fc9
Draft

fix(security): 防止文本对比/Markdown/正则结果中的 DOM XSS#3
cursor[bot] wants to merge 1 commit into
mainfrom
cursor/critical-bug-inspection-4fc9

Conversation

@cursor

@cursor cursor Bot commented May 4, 2026

Copy link
Copy Markdown

问题与影响

在「文本对比」「Markdown 预览」「正则测试」中,用户输入被直接拼进 innerHTML。攻击者可诱导受害者粘贴含 HTML/事件属性的载荷(例如 <img src=x onerror=alert(1)>),在同源页面上下文中执行脚本,造成会话劫持、钓鱼等。

根因

将未转义的用户字符串写入 innerHTML;Markdown 路径若仅转义捕获组,未匹配到 markdown 语法的裸 HTML 仍会原样进入 DOM。

修复

  • 新增 escapeHtml(),在写入 innerHTML 前转义用户内容。
  • textDiff():对每行差异内容转义。
  • renderMD():先对整段输入 escapeHtml 再应用简易 markdown 替换。
  • testRegex():对匹配子串与异常信息转义。

验证

  • 静态代码审查;仓库内无现成前端测试套件,未运行自动化测试。建议在浏览器中验证:在对比/Markdown/正则中粘贴 <script>onerror 载荷应显示为文本而非执行。
Open in Web View Automation 

…results

Prevent stored DOM XSS when pasting HTML or script-like payloads into
text diff, Markdown preview, or regex match output paths that used
innerHTML with unescaped user content.

Co-authored-by: Muki182 <Muki182@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant