2017-02-03 2 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 で私のカスタムタグライブラリ に追加し、問題は次のスキャン後に修正されました。