Jeecms 防xss处理原理

Web.xml配置过滤器,并指的要过滤和替换的字符:

 

过滤器的filter方法,对传入的HttpServletRequest对象进行了修改

 

具体过滤在XssHttpServletRequestWrapper类中实现,看看XssHttpServletRequestWrapper类都做了什么:

在构造方法中获取要过滤和替换的字符并分割成字符串数组,分隔符模式是@符号:

 

对原生的getQueryStringgetParametergetParameterValues、getHeader方法全部进行了重载,并使用xssEncode对返回值进行处理,

 

 

 接下来看xssEncode做了什么,也是最关键的地方:

 

可以看出他只是对字符进行了替换:把半角字符'@"@\@#@:@%@>替换为全角字符‘@“@\@#@:@%@>(这里@符为分隔符)。

posted @ 2016-03-10 10:50  范世强  阅读(683)  评论(0编辑  收藏  举报