客户机潜在的XSS没有经过适当的清理或验证

Client Potential XSS without being properly sanitized or validated

本文关键字:验证 XSS 客户机 经过      更新时间:2023-09-26

我在检查马克思扫描我的代码上得到以下消息。获取文本的用户输入元素。然后,该元素的值在没有经过适当处理或验证的情况下流经代码最终在方法中显示给用户下面是我的代码。有没有人能帮我清理一下下面的场景?

脚本如下:

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;
    }
}

我在没有正确消毒或验证的情况下获得了检查马克思漏洞

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

有没有人可以帮助我,如何正确地清理上面的行

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

无论如何,这里最简单的解决方案是将值设置为innerText属性,而不是innerHTML,如下所示:
summary.innerText = 'Test1 - ' + select[select.selectedIndex].text;