Veracode在XMLHttpResponse Javascript中报告XSS问题

Veracode在XMLHttpResponse Javascript中报告XSS问题,javascript,jsp,xss,Javascript,Jsp,Xss,我有Struts 2.x web应用程序。在这个应用程序中,我使用XMLHttpRequest刷新带有表的div。我有一个单独的JSP页面用于呈现HTML表。我在XMLHttpRequest中获得JSP页面响应,并将响应更新为div。Veracode在innerHTML代码行中显示XSS问题。如何清理此处的HTML内容 function ajaxFileUploadRefresh(){ var xmlhttp; if (window.XMLHttpRequest){// code

我有Struts 2.x web应用程序。在这个应用程序中,我使用XMLHttpRequest刷新带有表的div。我有一个单独的JSP页面用于呈现HTML表。我在XMLHttpRequest中获得JSP页面响应,并将响应更新为div。Veracode在innerHTML代码行中显示XSS问题。如何清理此处的HTML内容

function ajaxFileUploadRefresh(){
    var xmlhttp;
    if (window.XMLHttpRequest){// code for IE7+, Firefox, Chrome, Opera, Safari
        xmlhttp=new XMLHttpRequest();
    }
    else{// code for IE6, IE5
        xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlhttp.onreadystatechange=function(){
    if (xmlhttp.readyState==4 && xmlhttp.status==200){
        document.getElementById("StatusDiv").innerHTML=xmlhttp.responseText; // Refreshing the Div with response. This is where Veracode shows error.
        }
    }
    xmlhttp.open("POST","StrutsAction_methodName",true); // This action will be redirected to jsp
    xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    xmlhttp.send(postString);   
}

如果JSP页面正在生成HTML输出,那么您所拥有的一切都很好。只要JSP本身生成正确的HTML,就没有问题


如果响应为文本,则应使用innerText而不是innerHTML。

如何清理此处的HTML内容?-为什么需要消毒?URL StrutsAction_methodName不可信吗?它似乎是同一网站的一部分!谢谢你,昆汀。也许我不该在这里用消毒液。但是当响应被添加到div中时,veracode工具向我显示了XSS问题。检测安全漏洞的工具往往是愚蠢的。他们发现潜在的问题。你绝对必须分析他们的报告,看看是否有实际问题,不要盲目相信他们。你在这里可能是对的@Quentin。我也在探索这个方向。将此视为假阳性。非常感谢@fgb的回复。是的,JSP将生成HTML输出。它不是文本。它是HTML。所以我必须使用innerHTML。但是Veracode工具显示这是一个安全缺陷。我对此很担心。