参考
正文
代码
- 引入依赖库
<!-- 这个不需要引入,因为mica-xss引入过了。但是搜索到的其他教程文章内会引入 -->
<!-- <dependency>
<groupId>net.dreamlu</groupId>
<artifactId>mica-core</artifactId>
<version>2.7.1.1</version>
</dependency> -->
<dependency>
<groupId>net.dreamlu</groupId>
<artifactId>mica-xss</artifactId>
<version>2.7.1.1</version>
</dependency>
- 控制器接收代码
package com.xiaqiuchu.xsstest.controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
@RequestMapping
@RestController
public class IndexController {
@GetMapping
public String index(@RequestParam("xss") String xss){
return xss;
}
}
测试
-
普通参数测试 http://localhost:8080/?xss=1231 ,可以正确显示。
-
xss注入参数测试 http://localhost:8080/?xss=<BODY ONLOAD=alert('XSS')> ,已过滤。
配置项 application.properties
# 开启xss,默认开启
mica.xss.enabled=true
# clear专用转义,默认关闭
mica.xss.enable-escape=false
# 模式:clear 清理(默认),escape 转义
mica.xss.mode=clear
# 放行的路由,默认为空
mica.xss.path-exclude-patterns=
# 拦截的路由,例如: /api/order/**
mica.xss.path-patterns=/**
# clear专用 prettyPrint,默认关闭: 保留换行
mica.xss.pretty-print=false
# 【全局】是否去除文本首尾空格
mica.xss.trim-text=true
注解与自定义过滤
注解:可以使用 @XssCleanIgnore 注解对方法和类级别进行忽略。
自定义:MyXssCleaner implements XssCleaner 重写 clean 方法,然后自定义的过滤注册为 bean 。