common-xss 安全过滤使用
XSS 过滤说明
XSS (Cross-Site Scripting) 跨站脚本攻击是一种常见的 Web 安全漏洞。本模块提供以下防护能力:
- 对表单绑定的字符串类型进行 XSS 处理
- 对 JSON 字符串数据进行 XSS 处理
- 提供路由和控制器方法级别的放行规则
添加依赖
<!--XSS 安全过滤-->
<dependency>
<groupId>com.pig4cloud</groupId>
<artifactId>pigx-common-xss</artifactId>
</dependency>
配置参数
| 配置项 | 默认值 | 说明 |
|---|
| security.xss.enabled | false | 开启 XSS 过滤 |
| security.xss.path-patterns | 必填 | 拦截的路由,如 /** |
| security.xss.exclude-patterns | 空 | 放行的规则,如 /api/v1/* |
在 Nacos 配置中心添加配置:
# nacos/微服务名称-dev.yml
security:
xss:
enabled: true
path-patterns: /**
💡配置生效范围
配置需要在对应微服务的 Nacos 配置文件中添加,如 pigx-upms-biz-dev.yml
使用 @XssCleanIgnore 注解
可以使用 @XssCleanIgnore 注解对方法和类级别进行忽略。
方法级别忽略
@RestController
public class UserController {
@XssCleanIgnore
@PostMapping("/save")
public R save(@RequestBody User user) {
// 该方法不进行 XSS 过滤
return R.ok();
}
}
类级别忽略
@XssCleanIgnore
@RestController
public class ContentController {
@PostMapping("/article")
public R saveArticle(@RequestBody Article article) {
// 整个类的所有方法都不进行 XSS 过滤
return R.ok();
}
}
⚠使用场景
富文本编辑器等场景需要保留 HTML 标签时,应使用 @XssCleanIgnore 注解排除 XSS 过滤