因此,我有一些来自Web表单的输入,这些输入以XML的形式发送并通过XSS过滤器,该过滤器会在所有文本到达服务器之前对其进行规范化/未编码。因此,在客户端,我们发送:
<term><var>x</var><while exp="x<3"><dostuff></dostuff></while></term>
变成
<term><var>x</var><while exp="x<3"><dostuff></dostuff></while></term>
然后,当我解析xml时,它当然会中断。
我是否必须遍历每个属性并重新编码它们,还是在groovy / grails中有一种简单的方法?
答案 0 :(得分:0)
无论您使用哪种过滤器,它都会破坏您的数据,因此请在对其造成无法弥补的损害之前将其修复或迅速废弃。
在一般情况下,无法修复您的数据。如果过滤器将未转义的尖括号放入您的数据流中,则您可能能够检测到某些情况,但在最坏的情况下,它与真正的标记是无法区分的。