Springboot2.x 使用 mica-xss 实现 xss 过滤

参考

正文

代码

  1. 引入依赖库

            net.dreamlu
            mica-xss
            2.7.1.1

  1. 控制器接收代码
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;
    }
}

测试

  1. 普通参数测试 http://localhost:8080/?xss=1231 ,可以正确显示。
    Springboot2.x 使用 mica-xss 实现 xss 过滤
  2. xss注入参数测试 http://localhost:8080/?xss= ,已过滤。
    Springboot2.x 使用 mica-xss 实现 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

注解与自定义过滤

建议前往 https://www.dreamlu.net/components/mica-xss.html 查看

注解:可以使用 @XssCleanIgnore 注解对方法和类级别进行忽略。
自定义:MyXssCleaner implements XssCleaner 重写 clean 方法,然后自定义的过滤注册为 bean 。

Original: https://www.cnblogs.com/xiaqiuchu/p/16514216.html
Author: 夏秋初
Title: Springboot2.x 使用 mica-xss 实现 xss 过滤

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/541049/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Spring Cloud Gateway 网关内置API

    1 时刻与技术进步,每天一点滴,日久一大步!!! 本博客只为记录,用于学习,如有冒犯,请私信于我。 Original: https://www.cnblogs.com/myitne…

    Java 2023年5月30日
    046
  • 4、多态

    多态概念(一共三点满足就行) 1、 继承 2、程序运行时将子类对象赋值给父类 3、通过父类去调用子类的方法 一、父类类型做方法的参数 <span class=”kwd”&gt…

    Java 2023年6月6日
    095
  • 基础篇:JAVA集合,面试专用

    没啥好说的,在座的各位都是靓仔 List 数组 Vector 向量 Stack 栈 Map 映射字典 Set 集合 Queue 队列 Deque 双向队列 关注公众号,一起交流,微…

    Java 2023年6月5日
    0104
  • JUC自定义线程池练习

    JUC自定义线程池练习 首先上面该线程池的大致流程 自定义阻塞队列 首先定义一个双向的队列和锁一定两个等待的condition 本类用lock来控制多线程下的流程执行 take和p…

    Java 2023年6月16日
    079
  • Java8之Optional用法举例

    一、简介 Optional 类是一个可以为null的容器对象。如果值存在则isPresent()方法会返回true,调用get()方法会返回该对象。Optional 是个容器:它可…

    Java 2023年5月29日
    075
  • nginx跨域配置2022

    https://segmentfault.com/a/1190000012550346 上述链接中没有写token,下面代码增加了token 主要是这个 下面是上述链接中的完整文章…

    Java 2023年5月30日
    057
  • Executors创建四种线程池

    newCachedThreadPool创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。newFixedThreadPool 创建一个定…

    Java 2023年5月29日
    092
  • Java基础(1)——ThreadLocal

    1.1. ThreadLocal ThreadLocal是一个泛型类,当我们在一个类中声明一个字段: private ThreadLocal<foo> threadLo…

    Java 2023年6月10日
    079
  • 动态代理实现

    package pattern; import java.lang.reflect.InvocationHandler; import java.lang.reflect.Meth…

    Java 2023年6月9日
    081
  • Java基础常识

    1.eclipse Run as application 快捷键 2.关于半角和全角 1.eclipse Run as application 快捷键 记得刚学时两个手并用按住了A…

    Java 2023年5月29日
    080
  • spring+springmvc+ibatis整合注解方式实例

    需求说明 实现用户通过数据库验证登录需求。採用 Myeclipse+Tomcat 6.0+Mysql 5.0+JDK 1.6 2.数据库表 开发所用是Mysql 数据库,仅仅建立单…

    Java 2023年5月30日
    072
  • Java面试题(四)–RabbitMQ

    1、MQ有哪些使用场景?(高频) 异步处理:用户注册后,发送注册邮件和注册短信。用户注册完成后,提交任务到 MQ,发送模块并行获取 MQ 中的任务。 系统解耦:比如用注册完成,再加…

    Java 2023年6月9日
    083
  • 双向链表实现思路

    和单向链表的遍历相同,需要一个辅助节点来保存当前正在遍历的节点 双向链表多出了一个front,所以在添加时,要让新增节点的front指向链表尾节点 和单向链表的修改相同 使用tem…

    Java 2023年6月16日
    068
  • 什么是线上优雅停机和调整线程池参数?

    我是3y,一年 CRUD经验用十年的 markdown程序员👨🏻‍💻常年被誉为职业八股文选手 好几天没更新 austin的系列文章啦,主要是一直在写 austin的代码。而这篇文章…

    Java 2023年6月9日
    0103
  • GTID主从配置后的主库数据迁移到从库操作

    在不停止主库、主库不锁库的情况下进行数据库主从复制,主库的数据导入给从库,并且从库开启同步功能。 windows环境下mysql线上数据库需要做主从备份,线上的数据库已经开启bin…

    Java 2023年6月8日
    083
  • 让mysql支持emoji表情

    什么是emoji emoji就是表情符号 emoji的创造者是日本人栗田穰崇(Shigetaka Kurita) 在数据库的编码不为 utf8mb4,利用java mysql驱动保…

    Java 2023年6月16日
    083
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球