我偶然发现了一个奇怪的行为
DOMPurify
哪里
data-*
属性在使用默认选项进行清理时会保留,但在使用
SAFE_FOR_TEMPLATES
选项。还有,这个
整体
包含模板的文本将被剥离,而不仅仅是模板部分。
这些是bug还是特性?这些理由是什么?
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>