Jeecms 防xss处理原理
Web.xml配置过滤器,并指的要过滤和替换的字符:
过滤器的filter方法,对传入的HttpServletRequest对象进行了修改
具体过滤在XssHttpServletRequestWrapper类中实现,看看XssHttpServletRequestWrapper类都做了什么:
在构造方法中获取要过滤和替换的字符并分割成字符串数组,分隔符模式是@符号:
对原生的getQueryString、getParameter、getParameterValues、getHeader方法全部进行了重载,并使用xssEncode对返回值进行处理,
接下来看xssEncode做了什么,也是最关键的地方:
可以看出他只是对字符进行了替换:把半角字符'@"@\@#@:@%@>替换为全角字符‘@“@\@#@:@%@>(这里@符为分隔符)。