0

我偶然发现了DOMPurify的一个奇怪行为,在data-*使用默认选项进行清理时属性会留下,但在使用该SAFE_FOR_TEMPLATES选项时会被剥离。此外,包含模板的整个文本将被删除,而不仅仅是模板部分。

这些是错误还是功能?这些的理由是什么?

const dirty = '<span data-foo="bar"> Hello {{ World }} </span>';

console.log(
  DOMPurify.sanitize(dirty)
  // expected <span data-foo="bar"> Hello {{ World }} </span>
  // actual   <span data-foo="bar"> Hello {{ World }} </span>
);

console.log(
  DOMPurify.sanitize(dirty, { SAFE_FOR_TEMPLATES: true })
  // expected <span data-foo="bar"> Hello </span>
  // actual   <span>  </span>
);
<script src="https://unpkg.com/dompurify@2.0.0/dist/purify.min.js"></script>

4

0 回答 0