在VERACODE工具中运行我的应用程序,使用静态扫描,几乎没有中等和低级别的问题。我面临的一个问题是网页中与脚本相关的HTML标签的不正当中和(基本XSS)(CWE ID 80)。这在我的应用程序的许多屏幕中都会发生。
我的代码中有一个这样的例子如下:
<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>
行&lt;%= name%&gt; 中会抛出错误 。 请帮我解决这个XSS问题。
答案 0 :(得分:0)
切换到使用&lt; c:out&gt;或使用StringEscapeUtils.escapeHtml()
答案 1 :(得分:0)
您需要导入org.owasp.esapi.ESAPI和org.owasp.esapi.Encoder。 您必须使用OWASP和ESAPI。 编码收集的名称
Encoder encoder = ESAPI.encoder
String name =encoder.encodeForHtml((String)names.nextElement());
这可能有所帮助。