突然大面积POST请求报403错误,GET请求正常

出现这种原因很有可能是加了处理XSS攻击的filter.
代码的逻辑是:判断用户请求,如果是get请求,就拿到请求url上面的参数,然后判断有没有什么类似脚本的东西,如果没有就放行。

然后遇到post请求,就读取request的getInputStream里面的数据,转换成String,然后判断里面有没有类似脚本的文字。因为getInputStream 一旦被read之后。就不能再次被read了。所以在拦截器里面读取了请求的数据。后面的环节就拿不到请求数据了。get请求因为参数是拼接在url上面的,所以不受影响.


解决办法就是:先读取流里面的数据,转换成字符串,判断字符串里面有没有类似脚本的文字,有就替换掉。然后把替换之后的文字,这个时候原始的request已经没法用了,需要重新创建一个新的request放回去

突然大面积POST请求报403错误,GET请求正常