吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 4432|回复: 2
收起左侧

[Java 转载] Spring Boot Filter(xss)不过滤指定资源,绕过不需要过滤的资源【该项目框架为renr...

[复制链接]
派大星星 发表于 2019-7-23 11:00
项目框架为【人人开源框架renren-security】用富文本编辑器存到后台的是html,系统中有一个xxs防注入功能,所以到后台富文本的值别过滤变成纯文本了。如下图
前台获取到的是正常的HTML数据

image.png

到后台就被过滤成纯文本的汉字了

image.png

这样展现的时候之前输入的东西样式全乱了
image.png
首先找到项目Filter配置 的类,找到过滤HTML的方法,加上不需要进行过滤的请求地址
image.png
然后在对应的类中进行判断过滤
image.png
这样就OK了。完整代码:
[Java] 纯文本查看 复制代码
import io.base.common.xss.XssFilter;[/b]import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.filter.DelegatingFilterProxy;

import javax.servlet.DispatcherType;

/**
 * Filter配置
 */
@Configuration
public class FilterConfig {


    @Bean
    public FilterRegistrationBean xssFilterRegistration() {
        FilterRegistrationBean registration = new FilterRegistrationBean();
        registration.setDispatcherTypes(DispatcherType.REQUEST);
        registration.setFilter(new XssFilter());
        registration.addUrlPatterns("/*");
        registration.addInitParameter("notice","*/sysnotice/*");
        registration.setName("xssFilter");
        registration.setOrder(Integer.MAX_VALUE);
        return registration;
    }
}
Java
import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;

/**
 * XSS过滤
 */
public class XssFilter implements Filter {

   private String[] excludedUris;

   @Override
   public void init(FilterConfig config) throws ServletException {
      excludedUris = config.getInitParameter("notice").split(",");
   }

   @Override
   public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
            throws IOException, ServletException {
      XssHttpServletRequestWrapper xssRequest = new XssHttpServletRequestWrapper(
            (HttpServletRequest) request);
      String url = xssRequest.getServletPath();
      if (isExcludedUri(url)){
         chain.doFilter(request, response);
      }else {
         chain.doFilter(xssRequest, response);
      }
   }

   @Override
   public void destroy() {
   }

   private boolean isExcludedUri(String uri) {
      if (excludedUris == null || excludedUris.length <= 0) {
         return false;
      }
      for (String ex : excludedUris) {
         uri = uri.trim();
         ex = ex.trim();
         if (uri.toLowerCase().matches(ex.toLowerCase().replace("*",".*")))
            return true;
      }
      return false;
   }
}

免费评分

参与人数 2吾爱币 +4 热心值 +2 收起 理由
梦想0330 + 1 + 1 我很赞同!
苏紫方璇 + 3 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

围巢 发表于 2019-7-23 11:42
不错,学习了…
梦想0330 发表于 2019-9-21 14:02
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-16 15:36

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表