2013-08-27 47 views
1

在VERACODE工具中使用靜態掃描運行我的應用程序時,幾乎沒有中低級別問題。我面臨的一個問題是網頁中與腳本相關的HTML標籤的不當中和(基本XSS)(CWE ID 80)。這發生在我的應用程序的很多屏幕上。在我的代碼需要解決方案來修復跨站點腳本問題 - 在Web頁面中對腳本相關HTML標記的不當中和

一個這樣的例子是如下:

<table border="1" width="500"> 
<% java.util.Enumeration names = request.getParameterNames(); 
while (names.hasMoreElements()) { 
String name = (String)names.nextElement(); 
String[] values = request.getParameterValues(name); 
%> 
<tr> 
<td align="left"><b><%= name %></b></td> 
<td align="left"> 
<%  for (int i = 0; i < values.length; i++) { %> 
<%= values[i] %> 
<%  
if (i < values.length - 1) { %> 
<%= ", " %> 
<%   } 
} %> 
</td> 
</tr> 
<% } %> 
</table> 

該錯誤是在線路<%=名稱%> 拋出。 請幫我解決這個XSS問題。

回答

0

更換爲使用< C:出>或使用StringEscapeUtils.escapeHtml()

0

需要導入org.owasp.esapi.ESAPI和org.owasp.esapi.Encoder。 您必須爲此使用OWASP和ESAPI。 編碼的名字在那裏得到收集

Encoder encoder = ESAPI.encoder 
String name =encoder.encodeForHtml((String)names.nextElement()); 

這可能會有幫助。