添加依赖

        <!-- xss跨站脚本攻击 -->
<dependency>
<groupId>net.dreamlu</groupId>
<artifactId>mica-core</artifactId>
<version>2.5.8</version>
</dependency>
<dependency>
<groupId>net.dreamlu</groupId>
<artifactId>mica-xss</artifactId>
<version>2.5.8</version>
</dependency>

  注意:mica与springboot有版本对应关系

mica 源码 Github:https://github.com/lets-mica
mica 源码 Gitee(码云):https://gitee.com/596392912/mica
mica 性能压测:https://github.com/lets-mica/mica-jmh
文档地址(官网):http://wiki.dreamlu.net

控制层

package com.ybchen.controller;

import com.ybchen.model.UserDO;
import lombok.extern.slf4j.Slf4j;
import net.dreamlu.mica.xss.core.XssCleanIgnore;
import org.springframework.web.bind.annotation.*; /**
* @ClassName XssController
* @Description xss跨站攻击
* @Author Alex
* @Date 2023/3 下午3:53
* @Version 1.0
*/
@Slf4j
@RestController
@RequestMapping(value = "xss")
public class XssController { /**
* 获取用户信息
* 当参数username=<script>alert(666)</script>
* 接收不到username参数,username=null
*
* @param user 用户对象
* @return
*/
@PostMapping("/post")
public String post(@RequestBody UserDO user,@RequestParam String age) {
log.info("【普通方式】获取用户信息,user:{},age:{}", user,age);
return user.toString();
} /**
* 获取用户名称
* 不会把参数username=<script>alert(666)</script>过滤掉
*
* @param username 用户名称
* @return
*/
@GetMapping("/getUserName")
public String getUserName(String username) {
log.info("【普通方式】获取用户名称,username:{}", username);
return username;
} /**
* 获取用户名称
* 跳过过滤, 在Controller或者方法上添加注解@XssCleanIgnore。
* 会把参数username=<script>alert(666)</script>过滤掉
*
* @param username 用户名称
* @return
*/
@XssCleanIgnore
@GetMapping("/getRegisterUserName")
public String getRegisterUserName(String username) {
log.info("【过滤方式】获取用户名称,username:{}", username);
return username;
} }
@Data
public class UserDO {
/**
* 用户ID
*/
private String id; /**
* 用户名称
*/
private String username;
}

SpringBoot 处理xss攻击的更多相关文章

  1. SpringBoot防XSS攻击

    1 . pom中增加依赖 <!-- xss过滤组件 --> <dependency> <groupId>org.jsoup</groupId> < ...

  2. 给springboot增加XSS跨站脚本攻击防护功能

    XSS原理 xss攻击的原理是利用前后端校验不严格,用户将攻击代码植入到数据中提交到了后台,当这些数据在网页上被其他用户查看的时候触发攻击 举例:用户提交表单时把地址写成:山东省济南市<scri ...

  3. SpringBoot过滤XSS脚本攻击

    XSS攻击是什么 XSS攻击全称跨站脚本攻击,是为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS,XSS是一种在web应用中的计算机安 ...

  4. 防止XSS 攻击集成springboot

    1.配置相关数据 在配置文件中配置 # 防止XSS攻击 xss: # 过滤开关 enabled: true # 排除链接(多个用逗号分隔) excludes: /system/notice/* # 匹 ...

  5. 跨站点脚本编制 - SpringBoot配置XSS过滤器(基于mica-xss)

    1. 简介   XSS,即跨站脚本编制,英文为Cross Site Scripting.为了和CSS区分,命名为XSS.   XSS是最普遍的Web应用安全漏洞.这类漏洞能够使得攻击者嵌入恶意脚本代码 ...

  6. 防御XSS攻击-encode用户输入内容的重要性

    一.开场先科普下XSS 跨站脚本攻击(Cross Site Scripting),为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS.恶 ...

  7. 防止XSS攻击的方法

    什么是XSS? 使用Jsoup来防止XSS攻击 Jsoup官网 Jsoup中文 maven包引入 <dependency> <groupId>org.jsoup</gro ...

  8. PHP通用的XSS攻击过滤函数,Discuz系统中 防止XSS漏洞攻击,过滤HTML危险标签属性的PHP函数

    XSS攻击在最近很是流行,往往在某段代码里一不小心就会被人放上XSS攻击的代码,看到国外有人写上了函数,咱也偷偷懒,悄悄的贴上来... 原文如下: The goal of this function ...

  9. 前端XSS攻击和防御

    xss跨站脚本攻击(Cross Site Scripting),是一种经常出现在web应用中的计算机安全漏洞,指攻击者在网页中嵌入客户端脚本(例如JavaScript), 当用户浏览此网页时,脚本就会 ...

  10. XSS攻击及防御

    XSS又称CSS,全称Cross SiteScript,跨站脚本攻击,是Web程序中常见的漏洞,XSS属于被动式且用于客户端的攻击方式,所以容易被忽略其危害性.其原理是攻击者向有XSS漏洞的网站中输入 ...

随机推荐

  1. 避免Java异常栈被吞掉

    The compiler in the server VM now provides correct stack backtraces for all "cold" built-i ...

  2. 网络拓扑—DHCP服务配置

    目录 DHCP服务搭建 相关配置细节前提 安装DHCP服务 DHCP服务搭建 相关配置细节前提 系统:Windows Server 2003 IP网段:10.0.0.0/24 三台机子: 普通PC机 ...

  3. 在 JS 中使用 canvas 给图片添加文字水印

    实现说明: 1.先通过 new Image() 载入图片: 2.图片加载成功后使用 drawImage() 将图片绘制到画布上: 3.最后使用 fillText() 函数绘制水印. 下面展示了详细用法 ...

  4. 深入理解 Swoole 的底层加载原理

    首发原文链接:深入理解 Swoole 的底层加载原理 PHP 扩展加载 我们从 php-src/sapi/cli/php_cli.c:1159 文件的入口函数 int main(int argc, c ...

  5. 阅读LXH《FFMPEG+SDL的视频播放器》总结

    一.原文地址 https://blog.csdn.net/leixiaohua1020/article/details/46889389 在此向雷霄骅致敬!!! 二.视频播放器实现思路 1)视频播放器 ...

  6. pands基础--数据结构:Series

    从本文开始介绍pandas的相关知识. pandas含有是数据分析工作变得更快更简单的高级数据结构和操作工具,是基于numpy构建的. 本章节的代码引入pandas约定为:import pandas ...

  7. CF1838A-Blackboard-List

    题意简述 在黑板上有两个数字,进行如下操作 \(n-2\) 次: 每次在黑板上选择任意两个数,将两个数的差的绝对值写在黑板上. 这样你会得到一个长度为 \(n (3 \le n \le 100)\) ...

  8. kettle从入门到精通 第三十六课 kettle carte 集群

    1.carte服务可以单体运行也可以集群方式运行,今天我们一起来学习下carte的集群模式部署和使用.本次示例用一个master和两个slave从节点演示. carte-config-master-8 ...

  9. 由于找不到 XINPUT1_3.dll,无法继续执行代码。重新安装程序可能会解决此问题。

    ---------------------------EpicGamesLauncher.exe - 系统错误---------------------------由于找不到 XINPUT1_3.dl ...

  10. ES进阶

    https://www.elastic.co/guide/en/elasticsearch/reference/current/cat.html 1.监控接口 访问es的_cat接口,获取不同的属性 ...