2017-10-20 11 views
0

Struts 2.x 웹 ​​응용 프로그램이 있습니다. 이 응용 프로그램에서는 테이블을 사용하여 div를 새로 고치는 데 XMLHttpRequest을 사용하고 있습니다. HTML 테이블 렌더링을위한 별도의 JSP 페이지가 있습니다. XMLHttpRequest에서 JSP 페이지 응답을 얻고 div에 대한 응답을 업데이트합니다. Veracode가 innerHTML 코드 줄에 XSS 문제를 표시하고 있습니다. HTML 컨텐트를 어떻게 위생 처리 할 수 ​​있습니까?Veracode가 XMLHttpResponse Javascript에서 XSS 문제를보고합니다.

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); 
} 
+0

"여기에 HTML 컨텐트를 어떻게 위생 할 수 있습니까?" - 왜 위생 처리가 필요합니까? 'StrutsAction_methodName' URL이 신뢰할 만합니까? 그것은 같은 사이트의 일부인 것 같습니다! 고마워요 @ 퀸틴, – Quentin

+0

. 아마도 여기에서 살균제를 사용해서는 안됩니다. 하지만 veracode 도구는 응답이 div에 추가 될 때 XSS 문제를 표시합니다. – ramanareddy438

+0

보안 구멍을 탐지하는 도구는 어리 석다. 잠재적 문제를 발견합니다. 실제 문제가 있는지 맹목적으로 알 수 없도록 보고서를 분석해야합니다. – Quentin

답변

1

JSP 페이지가 HTML 출력을 생성하는 경우 사용자가 가지고있는 것이 좋습니다. JSP 자체가 올바른 HTML을 생성하는 한 문제는 없습니다.

응답이 텍스트 인 경우 innerHTML 대신 innerText을 사용해야합니다.

+0

답장을 보내 주셔서 감사합니다. @fgb. 예, JSP가 HTML 출력을 생성합니다. 텍스트가 아닙니다. 그것은 HTML입니다. 그래서'innerHTML'을 사용해야합니다. 그러나 Veracode 도구는이를 보안 결함으로보고 있습니다. 나는 그것에 관심이있다. – ramanareddy438