【问题标题】:Check SVG with JS dompurify用 JS dompurify 检查 SVG
【发布时间】:2022-02-23 23:50:47
【问题描述】:

我正在使用 DomPurify 清理 SVG 代码。

它工作正常,但是如果在文本区域中输入的 SVG 代码无效,我想显示一条消息。

我正在尝试将添加的 SVG 代码与已清理的 SVG 代码进行比较。如果它们不同,我会显示一条消息。

function validate() {
  if( svgCode.trim() === DOMPurify.sanitize(svgCode).trim() ) {
    console.log('All right!');
  } else {
    console.log('Uuuh-oooh! The SVG code is not valid!');
  }
}

validate();

问题:我不断收到Uuuh-oooh! The SVG code is not valid!,因为 dompurify 将关闭路径(如/>)变成完整路径'`。

【问题讨论】:

    标签: javascript dompurify


    【解决方案1】:

    您可以使用removed 属性来检查是否发生了任何清理。

    例如

      DOMPurify.sanitize('<svg onload=alert(1) />');
      console.log(DOMPurify.removed.length); // 1
      DOMPurify.sanitize('<svg />');
      console.log(DOMPurify.removed.length); // 0
    

    https://github.com/is2ei/DOMPurify#okay-makes-sense-lets-move-on

    清理标记后,您还可以查看属性 DOMPurify.removed 并找出丢弃了哪些元素和属性。请不要将此属性用于做出任何安全关键决策。这只是好奇的小帮手。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-03-17
      • 2019-03-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-22
      相关资源
      最近更新 更多