DOMPurify 内容净化
将以下提示词粘贴到你的 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携带恶意内容