【问题标题】:checkmarx scan issue with the js code $(this).attr('name')js 代码 $(this).attr(\'name\') 的 checkmarx 扫描问题
【发布时间】:2022-11-27 03:58:13
【问题描述】:

我在我的js文件中写了下面这行代码

var radio =
DOMPurify.sanitize($($.parseHTML(decodeURIComponent(encodeURIComponent($
(this).attr('name'))))).text());

并且 checkmarx 扫描在上面的行抛出以下错误

“该应用程序在 com.js 的上述行中使用 $ 将不受信任的数据嵌入到生成的输出中。这些不受信任的数据未经适当的清理或编码就直接嵌入到输出中,使攻击者能够将恶意代码注入到输出中。”

有人可以告诉我我做错了什么以及我需要做什么才能解决这个漏洞问题吗?提前致谢

我已经实施了 DOMPurify.sanitize

【问题讨论】:

    标签: javascript jquery xss


    【解决方案1】:

    我在您的代码中看到两个相互矛盾的问题。

    1. 你正在编码 (this).attr('name')接着解码回来(为什么?)
    2. 您不需要使用 parseHtml,因为 (this).attr('name') 已经是一个 DOM对象

      你可以简单地把它写成:

      var radio = DOMPurify.sanitize(($(this).attr('name')).text());
      

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-11-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多