Tapestry 5.3.8中表单中的文本字段(用户输入字符串包含反斜杠字符)似乎在表单POST后在服务器端损坏。
说我有一个城市名称形式的字段:
<t:textfield t:id="inputCity" t:label="message:city" value="agency.city" t:validate="required" size="40" maxlength="50" />
如果我在该字段中输入
test\fred
并检查onSuccess()方法顶部调试器中的agency.city值。值将是
test?red
在哪里?是换页符。我添加的数量没有任何差别。它们都被移除,除了最后一个,它被解释为不按字面意思。
在浏览器调试器中查看数据是否完整地发送到服务器端。所以,如果我输入
test\\fred
POST包含:
inputCity=test%5C%5Cfred
如何制作挂毯而不是弄乱文本字段中的字符数据?
答案 0 :(得分:1)
事实证明我们使用ESAPI来处理一些跨站点脚本问题。 ESAPI的编码器默认使用JavascriptCodec,JavascriptCodec删除所有反斜杠。以下是报告的问题。
https://code.google.com/p/owasp-esapi-java/issues/detail?id=252
所以,Tapestry不是问题。 :)