代码之家  ›  专栏  ›  技术社区  ›  jambox

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

  •  0
  • jambox  · 技术社区  · 6 年前

    因此,我从一个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>

    我是否必须逐级遍历每个属性并对它们重新编码,或者在groovy/grails中是否有一种简单的方法可以做到这一点?

    1 回复  |  直到 6 年前
        1
  •  0
  •   Michael Kay    6 年前

    无论你使用什么过滤器,它都会破坏你的数据,所以在它造成无法弥补的伤害之前,尽快修复或废弃它。

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