用途:当应用需要渲染用户提供的 Markdown(如评论、文档界面、嵌入式编辑器),或准备用 innerHTML 插入 Markdown 生成的 HTML,或浏览器端运行 Mermaid 等图表渲染器时,使用该技能保证安全。
主要能力:给出不可颠倒的处理链——先用 marked.js 把 Markdown 解析为 HTML,再用 DOMPurify 净化,然后才插入 DOM,最后在已净化的 DOM 上运行 Mermaid.run() 渲染图表。资料强调 Markdown 渲染器本身不做净化,图表渲染器在净化器之后执行可能重新引入攻击向量,因此顺序至关重要。
使用方式:按四步实现——marked.parse 解析、DOMPurify.sanitize 净化(可配置 ADD_TAGS 保留 mermaid 标签)、插入净化后的 HTML、对 .mermaid 节点调用 mermaid.run。资料给出 DOMPurify 配置示例,包括 ADD_TAGS、ADD_ATTR、FORBID_TAGS、FORBID_ATTR。
限制与注意:即使内容看似可信也不要跳过净化器;不要在 Mermaid 渲染后再净化;不要在任何地方使用未净化的 innerHTML;不要信任 localStorage 或 URL 参数。资料提供验证清单,包括用 <img src=x onerror=alert(1)> 载荷测试。具体安装命令与版本信息暂未提供。