在 JavaScript 中取消转义 HTML 实体
问题:
从 XML 接收 HTML 字符串时-RPC 后端,它们按字面意思呈现,而不是呈现为 HTML 元素。这表明 HTML 正在通过 XML-RPC 通道进行转义。
使用 DOMParser 的解决方案:
要在 JavaScript 中正确转义 HTML 实体而不引入安全漏洞,它推荐使用 DOMParser 接口。 DOMParser 根据提供的 HTML 字符串创建一棵 DOM 树,然后可用于检索未转义的文本内容。
这是利用 DOMParser 的 htmlDecode 函数的更新版本:
function htmlDecode(input) { var doc = new DOMParser().parseFromString(input, "text/html"); return doc.documentElement.textContent; }
以下示例演示了如何使用更新后的函数:
console.log(htmlDecode("<img src='myimage.jpg'>")); // "<img src='myimage.jpg'>" console.log(htmlDecode("<img src='dummy' onerror='alert(/xss/)'>")); // ""
在第二个中例如,潜在的恶意 HTML 字符串未正确转义,从而生成空字符串,以防止跨站脚本 (XSS) 漏洞。
以上是如何在 JavaScript 中安全地取消转义 HTML 实体?的详细内容。更多信息请关注PHP中文网其他相关文章!