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

And*_*rdi 1 html jsp

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

Bal*_*usC 5

<c:out>默认情况下逃脱XML实体<,>,&,"'防止XSS攻击.

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

${text}
Run Code Online (Sandbox Code Playgroud)

或者添加escapeXml="false" attribute:

<c:out value="${text}" escapeXml="false" />
Run Code Online (Sandbox Code Playgroud)

您只需确保此HTML受信任,否则这将是一个非常简单的XSS攻击漏洞.Jsoup可能对此有所帮助,另请参阅JSP/Servlet Web应用程序中的XSS预防.