1

在 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>

错误在<%= name %>行中抛出 。请帮我解决这个 XSS 问题。

4

2 回答 2

0

切换到使用 <c:out > 或使用 StringEscapeUtils.escapeHtml()

于 2013-08-29T21:14:48.553 回答
0

您需要导入 org.owasp.esapi.ESAPI 和 org.owasp.esapi.Encoder。为此,您必须使用 OWASP 和 ESAPI。在收集的地方编码名称

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

这可能会有所帮助。

于 2016-01-06T13:01:53.120 回答