依赖jar包

引入包 版本
jdk 1.8
spring boot 2.7.2
jsoup 1.13.1
spring-boot-starter-web 2.7.2
jackson-databind 2.13.3
javax.servlet-api 4.0.1
spring-boot-autoconfigure 2.7.2

使用

添加依赖

<dependency>
  <groupId>cn.allbs</groupId>
  <artifactId>allbs-xss</artifactId>
  <version>2.0.0</version>
</dependency>
implementation 'cn.allbs:allbs-xss:2.0.0'
implementation("cn.allbs:allbs-xss:2.0.0")

自动过滤html相关标签

添加注解后默认开启xss防御,只拦截PUTPOST请求的接口,可以在方法上添加注解@XssIgnore 关闭xss拦截

配置说明

security:
  xss:
  	# true开启全局过滤,false关系全局过滤
    enabled: true
    # 拦截的路由列表
    pathPatterns:
      - /user
    # 不过滤的路由列表
    excludePatterns:
      - /xss

示例

代码

@RequestMapping("xss")
@RestController
public class XssController {

    @PostMapping("test")
    public String test(String htmlContent) {
        return htmlContent;
    }
}

过滤前

<script>alert('xss攻击')</script>参数

过滤后

参数

image-20220809163825739