Struts2一次请求参数问题的记录

        最近,一次前端正常请求,但后台出现请求参数值的变化,导致报错,问题如下:

       从入参request中查看请求参数,是一个Json字符串,其中有个description的键值对

Struts2一次请求参数问题的记录_第1张图片

        

        但是,接下来调用resquest的getParatemer(),取值参数值时,却发现json字符串数值变了,凭空多出来一个deion的键值对,如下图:

Struts2一次请求参数问题的记录_第2张图片

         进而导致后续的Json解析报错:

Struts2一次请求参数问题的记录_第3张图片

        因为在代码逻辑中,未对此数值进行额外的处理逻辑,正常不会变化才对,查看getParatemer()方法的源码,发现本地有两处进行了重写:

Struts2一次请求参数问题的记录_第4张图片

         分别进入两个对应的Fliter中:

第一个没有发现什么修改逻辑;

第二个Filer中,发现未防止Xss注入,对请求进行了处理,在图中第二个标注出,对数值中script的全文替换,导致了上述问题,json中的description被替换后就成了deion。

Struts2一次请求参数问题的记录_第5张图片

         发现此问题后,对此替换逻辑,进行了优化(可以选判断下script边界再做替换,或者其他方法),问题解决。

 

你可能感兴趣的:(异常,struts)