You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Github提示‘Dom text reinterpeted as HTML’漏洞,如何正确修复?

修复XSS漏洞的正确方式

你的问题根源在于直接拼接HTML字符串插入DOM,这种做法会让文本中的HTML特殊字符(比如<、>、&)被浏览器解析为HTML,从而引发XSS风险,这也是Github警报的原因。你尝试用$.find()的方向完全错误,这个方法是用来查找DOM元素的,根本不适合处理文本转义。

正确修复代码

直接用jQuery创建span元素并设置文本内容,jQuery会自动转义所有危险字符,彻底避免XSS:

$div.find('.myclass').each(function () {
  // 创建span元素,用text()方法设置内容(自动转义特殊字符)
  const $span = $('<span>').text($(this).text());
  // 将span追加到.list元素中
  $('.list').append($span);
});

关键修正点说明

  1. 选择器修正:原代码里的$div.find('myclass')应该是$div.find('.myclass')——class选择器必须加.,否则会查找<myclass>标签,这大概率是你之前的笔误。
  2. 避免HTML拼接:不再用'<span>' + 文本 + '</span>'这种拼接方式,而是通过$('<span>')创建元素,再用.text()注入内容。.text()会自动把所有特殊字符转义成实体(比如<变成&lt;),确保文本只会被当作纯文本渲染,不会被解析为HTML。
  3. 选择器简化:原代码里的$("\.list")完全没必要转义.,直接写$('.list')即可。

另一种等价简洁写法

如果不想单独创建变量,也可以直接链式调用:

$div.find('.myclass').each(function () {
  $('.list').append($('<span>').text($(this).text()));
});

内容的提问来源于stack exchange,提问作者May

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 00:52:51