DOMPurify 更好用的前端 XSS 字符串清理库

介绍

DOMPurify 用于进行 HTML 文本的过滤,它会尽可能保留更多无害的属性,尽可能保持原有效果。它基于 dom,生成 dom 树后对其各属性进行过滤,执行效率高。

安装使用

安装:

npm i -S dompurify

新版提供了静态方法,更易于使用:

import * as DOMPurify from 'dompurify';

let clean = DOMPurify.sanitize('<b>hello there</b>');

也可在 Node.js 中使用,需配合 jsdom 使用。

另外, Vue 中有 vue-dompurify-html 这个包,可以直接使用 v-dompurify-html 替代 v-html,非常方便。

常用设置

默认允许 HTML、SVG 和 MathML,设置只需要 HTML:

{ USE_PROFILES: { html: true } }

默认会过滤掉 target 属性,如需保留,可设置:

{ ADD_ATTR: ['target'] }

<style> 标签前面无内容时,会被过滤掉,增加设置:

{ FORCE_BODY: true }
本文收录于专栏
收集一些好用的前端开源库,主要是 npm 包