我应该使用哪个 DOMPurify isSupported?

Which DOMPurify isSupported should I use?

提问人:Clay Casper 提问时间:12/20/2022 更新时间:12/20/2022 访问量:199

问:

我正在将 DOMPurify 与 Node.js 一起使用。

从这里开始编写代码

import { JSDOM } from 'jsdom';
import DOMPurify from 'dompurify';

const window = new JSDOM('').window;
const purify = DOMPurify(window);
const clean = purify.sanitize('<b>hello there</b>');

console.log(DOMPurify.isSupported) // -> false
console.log(purify.isSupported) // -> true

我猜是我应该检查的值,因为我使用的是这样的节点。我可以忽略 DOMPurify.isSupported 吗?purify.isSupported

我假设 DOMPurify.isSupported 无关紧要,因为我正在使用消毒。这是对的吗?purify

叫我偏执狂,只想避免XSS。

节点 .js 主净化

评论


答:

0赞 Konrad 12/20/2022 #1

源代码中,您可以看到这始终是 falseDOMPurify.isSupported

if (!window || !window.document || window.document.nodeType !== 9) {
  // Not running in a browser, provide a factory function
  // so that you can pass your own Window
  DOMPurify.isSupported = false;

  return DOMPurify;
}