如何处理XML字符串属性中的特殊字符?

时间:2018-11-08 13:31:56

标签: xml grails groovy

因此,我有一些来自Web表单的输入,这些输入以XML的形式发送并通过XSS过滤器,该过滤器会在所有文本到达服务器之前对其进行规范化/未编码。因此,在客户端,我们发送:

<term><var>x</var><while exp="x&lt;3"><dostuff></dostuff></while></term>

变成

<term><var>x</var><while exp="x<3"><dostuff></dostuff></while></term>

然后,当我解析xml时,它当然会中断。

我是否必须遍历每个属性并重新编码它们,还是在groovy / grails中有一种简单的方法?

1 个答案:

答案 0 :(得分:0)

无论您使用哪种过滤器,它都会破坏您的数据,因此请在对其造成无法弥补的损害之前将其修复或迅速废弃。

在一般情况下,无法修复您的数据。如果过滤器将未转义的尖括号放入您的数据流中,则您可能能够检测到某些情况,但在最坏的情况下,它与真正的标记是无法区分的。