Java XSS错误:如何防止这种情况?

Java XSS错误:如何防止这种情况?,java,jsp,jstl,xss,veracode,Java,Jsp,Jstl,Xss,Veracode,我有一个情况: 我有一个页面,它使用显示来自DB的数据,其中的内容有一些特殊字符作为注册商标。我在代码中使用java、jsp、jstl。 注册商标符号显示为: ® 进口产品非常完美,如: <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %> 请给我一

我有一个情况: 我有一个页面,它使用
显示来自DB的数据,其中的内容有一些特殊字符作为注册商标。我在代码中使用java、jsp、jstl。 注册商标符号显示为:

®

进口产品非常完美,如:

 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
 <%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>

请给我一个解决这个问题的方法好吗?非常感谢您提供的任何帮助。

因为您允许在页面中添加标记,因此会将其视为漏洞

而不是写作

<span class="sup">&reg;</span>
®;
你可以写

<script>alert("Alert");</script>
警报(“警报”);
这将是一个持久的XSS


尝试重构代码,使其不包含数据库值中的任何标记。否则,请确保数据库中的值已清理。

数据库由第三方供应商维护,不受我的控制,因此无法更改数据库值。在我从DB检索到商标后,我必须在页面中显示商标。DB包含XML值,如果没有转义,则实际值不会打印在页面中。在这种情况下,如何清理从DB检索到的值?您应该使用类似的库来清理输入。还要注意,从不受您控制的数据库检索数据也是从外部源输入的。使用
jsoup
怎么样?会有帮助吗?
<span class="sup">&reg;</span>
<script>alert("Alert");</script>