一、该问题的重现步骤是什么?
1. 表单提交html类似 < img src=1 onerror=alert(1)>, 理论上后端过滤器拦截到之后会会将html替换成空, 但是问题出在匹配html的正则上, 如果 <符号到img中间有空格的话正常替换成空没问题, 如果没有空格是<img src=1 alert(1)> 将匹配不到, 导致下一步监测script中的内容只去掉了alert变成<img src=1 "1"> 后续spring将请求参数转为json的时候会报错, 因为具体格式中多了一个双引号
二、你期待的结果是什么?实际看到的又是什么?
三、你正在使用的是什么产品,什么版本?在什么操作系统上?
2.8.2 2.9.0都有这个问题
四、请提供详细的错误堆栈信息,这很重要。
五、若有更多详细信息,请在下面提供。
类: XssHttpServletRequestWrapper 方法: processTag , 具体正则:
private static final Pattern P_START_TAG = Pattern.compile("^([a-z0-9]+)(.*?)(/?)$", 34); m = P_START_TAG.matcher(s);
扫一扫访问 Blade技术社区 移动端