2017-02-03 10 views
0

Veracode 검사가 통과 된 후. 내 JSP에서 XSS 취약점에 대한 CWE의 ID 80 XSS 문제를보고 :빈 문자열 값의 Veracode XSS

<%@ attribute name="styleId"%> 
... 
document.getElementById("${styleId}").value=""; (XSS here) 

나는 문제 어디로 무엇을 이해할 수 없다? 빈 문자열을 벗어나야합니까? 또는 styleId 또는 Both? EASPI.encodeForHTML을 사용해야합니까 ??

답변

0

여기서 문제는 styleId가 XSS which to break the j을 도입 할 수 있다는 것입니다. 그래서 js에 대한 규칙으로 styleId를 벗어나야합니다. 그래서 나는 다음

<function> 
     <name>escapeJavaScript</name> 
     <function-class>org.apache.commons.lang.StringEscapeUtils</function-class> 
     <function-signature>java.lang.String escapeJavaScript(java.lang.String)</function-signature> 
    </function> 

<%@ attribute name="styleId"%> 
<%@ taglib prefix="util" uri="http://tags/util" %> 
... 
document.getElementById("${util:escapeJavaScript(styleId)").value=""; 

util.tag 에 내 사용자 정의 태그 라이브러리 에 추가하고 문제는 다음 스캔 후 수정되었습니다.