Agent Skills
返回列表
💻

DOMPurify 内容净化

开发编程 更新于 2026.08.30

将以下提示词粘贴到你的 AI 对话框中:

请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/sanitize-untrusted-html-fragments-before-rendering-previews-comments-or-cms-content-dompurify 到 AI 助手。

技能介绍

要解决的核心问题

在前端开发中,我们常需渲染用户输入、富文本编辑器生成、外部导入甚至模型输出的 HTML 内容,比如评论列表、CMS 文章预览、第三方数据嵌入等。这些不受信任的 HTML 片段可能藏有恶意脚本、危险事件属性,直接渲染会引发 XSS 攻击,导致页面篡改、用户信息窃取等安全问题。很多团队在内容渲染时缺乏统一的清理机制,手动过滤既繁琐又易遗漏风险点。

技能的核心工作方式

该技能以 DOMPurify 为基础,专注于在内容展示前完成安全清理,核心流程清晰:

  • 首先识别不可信内容来源,覆盖用户提交、富文本输出、外部导入、模型生成等场景
  • 通过 DOMPurify 剥离危险标记(如恶意 script 标签)和不安全属性,仅保留安全可用的 HTML 结构
  • 清理后的内容可用于预览渲染、CMS 字段存储、下游页面嵌入,避免未净化内容进入业务链路
  • 服务端运行时需依赖 DOM 环境,通常搭配 jsdom 使用,保障 Node.js 等后端场景的净化能力

适用边界与注意事项

  • 该技能是内容净化层,不替代输入合法性校验,复杂业务仍需结合业务规则过滤
  • 若需在 Trusted Types 策略中使用 DOMPurify,必须设置 RETURN_TRUSTED_TYPE: false(该模式不支持生产环境使用)
  • 环境适配遇到问题时,可参考 isomorphic-dompurify 项目解决跨环境兼容问题
  • 不要对未经过该技能清理的 HTML 直接执行渲染操作,避免绕过安全校验

使用场景

  • 为网站评论区开发渲染功能时,需要将用户提交的HTML评论安全展示,防止恶意脚本执行
  • CMS系统中的文章预览场景,编辑器产生的富文本入库前需清理危险标签与属性
  • 后端服务使用Node.js处理用户提交内容并存储到CMS字段时,需在服务端完成HTML净化
  • 导入第三方或AI模型输出的HTML片段嵌入下游页面时,需剥离不安全标记后再渲染

适合人员

  • 负责评论或互动功能的前端工程师,需要将用户提交的HTML安全渲染到页面
  • 开发CMS内容管理后台的工程师,要确保富文本编辑器产出的HTML入库前经过净化
  • 负责内容审核或导入服务的后端工程师,需要处理外部来源HTML并存储到数据库
  • 集成大模型输出到业务页面的开发者,要防止模型生成的HTML携带恶意内容