代码之家  ›  专栏  ›  技术社区  ›  Nino Filiu

为什么domprify with SAFE_FOR_模板删除数据属性?

  •  0
  • Nino Filiu  · 技术社区  · 6 年前

    我偶然发现了一个奇怪的行为 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>
    0 回复  |  直到 6 年前
    推荐文章