【问题标题】:Client Potential XSS without being properly sanitized or validated未经适当清理或验证的客户端潜在 XSS
【发布时间】:2016-10-12 11:58:18
【问题描述】:

我在检查我的代码时收到以下消息。 获取文本的用户输入 元素。然后,该元素的值在没有经过适当清理或验证的情况下流经代码,并且 最终在方法中显示给用户 下面是我的代码。可以帮助我如何清理以下场景。

脚本如下:

function setSummary(select,summary,lim, summaryHidden, limHidden) {
    if(select[select.selectedIndex].value == '-1') {
        summary.innerHTML = '';
        lim.innerHTML = '';
        summaryHidden.value = '';
        limHidden.value = '';
    } else {
        summary.innerHTML = 'Test1 - '+select[select.selectedIndex].text;
        summaryHidden.value = 'Test2 - '+select[select.selectedIndex].text;
        lim.innerHTML = 'Virtual - '+select[select.selectedIndex].text;
        limHidden.value = 'Virtual - '+select[select.selectedIndex].text;
    }
}

我在下面一行得到 checkmarx 漏洞,因为没有经过适当的清理或验证

summary.innerHTML = 'Test1 - '+select[select.selectedIndex].text;

有人可以帮助我,如何正确清理上述行。

【问题讨论】:

    标签: javascript java jsp checkmarx


    【解决方案1】:

    这是否是可利用的,实际上取决于如何调用此函数的上下文,对象select 来自哪里(以及它是如何填充的 - 这是否可以外部控制?)

    无论如何,这里最简单的解决方案是将值设置为innerText 属性,而不是innerHTML,如下所示:

    summary.innerText = 'Test1 - ' + select[select.selectedIndex].text;
    

    【讨论】:

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