【问题标题】:Tapestry 5.3.8 form fields containing backslash characters are corrupted包含反斜杠字符的 Tapestry 5.3.8 表单字段已损坏
【发布时间】:2016-11-29 19:33:17
【问题描述】:

在 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() 方法顶部的调试器中检查 agent.city 值。该值将是

test?red 

在哪里?是换页符。我添加多少 \ 没有任何区别。除了最后一个之外,它们都被删除了,并且没有按字面意思解释。

在浏览器调试器中查看数据似乎完好无损地发布到服务器端。所以如果我输入

test\\fred 

POST 包含:

inputCity=test%5C%5Cfred

如何让挂毯不与文本字段中的字符数据混淆?

【问题讨论】:

    标签: java escaping tapestry


    【解决方案1】:

    事实证明,我们使用 ESAPI 来处理一些跨站点脚本问题。 ESAPI 的编码器默认使用 JavascriptCodec,JavascriptCodec 会去掉所有的反斜杠。这是报告的问题。

    https://code.google.com/p/owasp-esapi-java/issues/detail?id=252

    所以,Tapestry 没有问题。 :)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-11
      • 2019-04-18
      • 1970-01-01
      • 2018-01-29
      相关资源
      最近更新 更多