【发布时间】:2012-10-29 11:32:41
【问题描述】:
我想显示一个名为
的文本"welcome<to>Jsp"
在页面源代码中我也看到了“welcomeJsp”
但在 HTML 中,它仅显示为“welcomeJsp”。请指导我。
【问题讨论】:
标签: html jsp htmltextwriter
我想显示一个名为
的文本"welcome<to>Jsp"
在页面源代码中我也看到了“welcomeJsp”
但在 HTML 中,它仅显示为“welcomeJsp”。请指导我。
【问题讨论】:
标签: html jsp htmltextwriter
使用JSTL<c:out>标签或fn:escapeXml()函数。
<c:out value="welcome<to>Jsp" />
或
${fn:escapeXml('welcome<to>Jsp')}
您甚至可以在模型值上使用它。
<c:out value="${bean.property}" />
或
${fn:escapeXml(bean.property)}
当涉及到用户控制的输入时,应该始终使用这两个,否则你将完全受到 XSS 攻击漏洞的影响。另见our JSP wiki page 和What is the general concept behind XSS?
【讨论】:
你必须转义这些字符..
welcome<to>Jsp
我建议使用 Apache 的 StringEscapeUtils 类(在 org.apache.commons.lang 中可用)函数 escapeHtml() 来转义 HTML。
StringEscapeUtils.escapeHtml("welcome<to>Jsp")
【讨论】:
"welcome<to>Jsp"
> (greater than) - (>)
< (less than) - (<)
这些字符需要以这种方式编码才能真正显示出来。
【讨论】: