使用弹簧形式,我们显示如下输入:
<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
...
<form:input type="text" cssClass="w50" path="lastName" cssErrorClass="w50 error" placeholder="${msgLastName}" />
有时,用户的姓氏值可能会包含单引号,例如&#34; Job&#39;&#39;。这个问题是我们使用OWASP HTML项目清理姓氏,这导致姓氏为
Job's
当输入显示在浏览器中时,也会显示ascii值 - 这很糟糕。我想简单地展示&#34; Job&#34;&#34;进入输入。
我使用简单的JSP输入进行测试,例如
<input type="text" cssClass="w50" value="${myobject.lastName}" cssErrorClass="w50 error" placeholder="${msgLastName}" />
在这种情况下,渲染很好。
我的结论是问题来自春天,但如何避免呢?
答案 0 :(得分:0)
终于找到了答案。
Spring HTML-escape the values,它并没有真正输出
Job's
但
Job&#39;s
由于存在HTML字符,因此不会将其解析为ascii。
使用Chrome,如果我检查DOM,我看不到
&
但如果我“编辑为HTML”,那么我就会看到它。