介绍首先需要实现一个自定义过滤器
这篇文章将为大家详细讲解有关使用Springboot怎么对XSS漏洞进行过滤,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
首先需要实现一个自定义过滤器
总共包含以下四部分
- <李>
XssUtil
李> <李>XssFilterAutoConfig
李> <李>XssHttpServletRequestWrapper
李> <李>XssStringfJsonDeserializer
李>
最后我们需要在全局过滤器中使用我们实现的XSS自定义过滤器
代码实现
<强> XssFilterAtuoConfig实现代码强>
, import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.module.SimpleModule; import net.greatsoft.overallbudget.filter.SimpleCORSFilter; import org.springframework.boot.context.embedded.FilterRegistrationBean; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Primary; import org.springframework.http.converter.json.Jackson2ObjectMapperBuilder; import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;/* * ,* Created by  wjy 提醒2020/11/5。 ,* xss 自动配置类 ,*/@ configuration public class  XssFilterAtuoConfig { ,/* * ,,*,注册自定义过滤器 ,,* @return ,,*/,@ bean public 才能;FilterRegistrationBean  xssFiltrRegister (), { ,,,FilterRegistrationBean registration =, new FilterRegistrationBean (); ,,,//设置系统过滤器,(setFilter就是你所定义的过滤器过滤器类) ,,,registration.setFilter (new SimpleCORSFilter ()); ,,,//过滤所有路径 ,,,registration.addUrlPatterns (“/*”); ,,,//过滤器名称 ,,,registration.setName (“XssFilter"); ,,,//优先级 ,,,registration.setOrder (1); ,,,return 登记; ,,} ,/* * ,,*,,过滤JSON数据 ,,* @return ,,*/,@ bean @Primary才能 public 才能;MappingJackson2HttpMessageConverter  mappingJackson2HttpMessageConverter (), { ,,,SimpleModule module =, new SimpleModule (); ,,,//自定义序列化过滤配置(XssStringJsonDeserializer),对入参进行转译 ,,,module.addDeserializer (String.class, new XssStringJsonDeserializer ()); ,,,//,注册解析器 ,,,ObjectMapper ObjectMapper =, Jackson2ObjectMapperBuilder.json () .build (); ,,,objectMapper.registerModule(模块); ,,,return new MappingJackson2HttpMessageConverter (objectmap); ,,} }
<>强XssHttpServletRequestWrapper实现代码强>
/* * ,* Created by  wjy 提醒2020/11/5。 ,* xss 包装 ,*/public class  XssHttpServletRequestWrapper extends HttpServletRequestWrapper  { public 才能XssHttpServletRequestWrapper (HttpServletRequest 请求),{ ,,,超级(请求); ,,} ,/* * ,,*,对页眉处理 ,,*,@param 名字 ,,* @return ,,*/@Override才能 public 才能;String  getHeader (String 名称),{ ,,,String value =, super.getHeader(名称); ,,,return XssUtil.cleanXSS(价值); ,,} ,/* * ,,*,对参数处理 ,,*,@param 名字 ,,* @return ,,*/@Override才能 public 才能;String  getParameter (String 名称),{ ,,,String value =, super.getParameter(名称); ,,,return XssUtil.cleanXSS(价值); ,,} ,/* * ,,*,对数值进行处理 ,,*,@param 名字 ,,* @return ,,*/@Override才能 public 才能,String [], getParameterValues (String 名称),{ ,,,String [], values =, super.getParameterValues(名称); ,,,if (values !=, null), { ,,,,,int length =, values.length; ,,,,,String [], escapseValues =, new 字符串(长度); ,,,,,for (int 小姐:=,0;,小姐:& lt;,长度;,我+ +),{ null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null使用Springboot怎么对XSS漏洞进行过滤