需要解决方案来修复跨站点脚本问题 - 网页中与脚本相关的HTML标记的中和不当

时间:2013-08-27 12:45:09

标签: xss

在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问题。

2 个答案:

答案 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());

这可能有所帮助。