使用Springboot怎么对XSS漏洞进行过滤

  介绍

这篇文章将为大家详细讲解有关使用Springboot怎么对XSS漏洞进行过滤,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

首先需要实现一个自定义过滤器

总共包含以下四部分

<李>

XssUtil

<李>

XssFilterAutoConfig

<李>

XssHttpServletRequestWrapper

<李>

XssStringfJsonDeserializer

使用Springboot怎么对XSS漏洞进行过滤

使用Springboot怎么对XSS漏洞进行过滤

最后我们需要在全局过滤器中使用我们实现的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漏洞进行过滤