xss对提交内容的尖括号进行截断处理导致后续的序列化过程出错,处理方式是否可优化?

Blade 已结 1 968

一、该问题的重现步骤是什么?

  1. ajax调用后端存储的任意接口,提交的内容如下:

    image.png

2. 提交后后端报错,后端的处理将这个json从 < 前开始截断了,导致了后面反序列化流程报错


二、你期待的结果是什么?实际看到的又是什么?

我觉得后端处理不应该是截断,而是应该做转义,起码不应该在后续的序列化处报错。

如果前端,包括直接调用接口的应用,如果包含<>字符,应该自己做序列化和反序列化。如果不做,会被后端暴力转义后存储。


四、请提供详细的错误堆栈信息,这很重要。


截图的代码先做balance,  补充了> 闭合,然后 remove 尖括号里面的所有内容。 这样导致了json不完整。

image.png


五、若有更多详细信息,请在下面提供。

balanceHtml方法内部有提供参数来决定是balance tag或转义,但方法调用时固定了alwaysMakeTags

image.png

1条回答
  •  smallchill
    smallchill (最佳回答者)
    2020-07-05 21:12

    可以把alwaysMakeTags这个参数做成可配置,你先把他设置成false然后看看转义是否正确,如果正确的话我下版本改一下

    0 讨论(2)
提交回复