在JSP页面中呈现未转义的HTML

时间:2011-10-09 14:20:07

标签: html jsp

我在DB上有一个包含HTML文本的字段,我需要将其打印到JSP页面中。我该如何呈现HTML?使用<c:out value="${text}" />我可以看到带有HTML标记的文本。换句话说,它正在逃避HTML。

1 个答案:

答案 0 :(得分:5)

默认情况下,<c:out>会转义XML实体<>&"',以防止XSS攻击。

所以要解决你的问题,要么就是不要使用<c:out>(适用于JSP 2.0及更新版本):

${text}

或添加escapeXml="false" attribute

<c:out value="${text}" escapeXml="false" />

您只需确保此HTML受信任,否则这将是一个非常简单的XSS attack漏洞。 Jsoup可能对此有所帮助,另请参阅XSS prevention in JSP/Servlet web application