SpringBoot 处理xss攻击
添加依赖
<!-- 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攻击的更多相关文章
- SpringBoot防XSS攻击
1 . pom中增加依赖 <!-- xss过滤组件 --> <dependency> <groupId>org.jsoup</groupId> < ...
- 给springboot增加XSS跨站脚本攻击防护功能
XSS原理 xss攻击的原理是利用前后端校验不严格,用户将攻击代码植入到数据中提交到了后台,当这些数据在网页上被其他用户查看的时候触发攻击 举例:用户提交表单时把地址写成:山东省济南市<scri ...
- SpringBoot过滤XSS脚本攻击
XSS攻击是什么 XSS攻击全称跨站脚本攻击,是为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS,XSS是一种在web应用中的计算机安 ...
- 防止XSS 攻击集成springboot
1.配置相关数据 在配置文件中配置 # 防止XSS攻击 xss: # 过滤开关 enabled: true # 排除链接(多个用逗号分隔) excludes: /system/notice/* # 匹 ...
- 跨站点脚本编制 - SpringBoot配置XSS过滤器(基于mica-xss)
1. 简介 XSS,即跨站脚本编制,英文为Cross Site Scripting.为了和CSS区分,命名为XSS. XSS是最普遍的Web应用安全漏洞.这类漏洞能够使得攻击者嵌入恶意脚本代码 ...
- 防御XSS攻击-encode用户输入内容的重要性
一.开场先科普下XSS 跨站脚本攻击(Cross Site Scripting),为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS.恶 ...
- 防止XSS攻击的方法
什么是XSS? 使用Jsoup来防止XSS攻击 Jsoup官网 Jsoup中文 maven包引入 <dependency> <groupId>org.jsoup</gro ...
- PHP通用的XSS攻击过滤函数,Discuz系统中 防止XSS漏洞攻击,过滤HTML危险标签属性的PHP函数
XSS攻击在最近很是流行,往往在某段代码里一不小心就会被人放上XSS攻击的代码,看到国外有人写上了函数,咱也偷偷懒,悄悄的贴上来... 原文如下: The goal of this function ...
- 前端XSS攻击和防御
xss跨站脚本攻击(Cross Site Scripting),是一种经常出现在web应用中的计算机安全漏洞,指攻击者在网页中嵌入客户端脚本(例如JavaScript), 当用户浏览此网页时,脚本就会 ...
- XSS攻击及防御
XSS又称CSS,全称Cross SiteScript,跨站脚本攻击,是Web程序中常见的漏洞,XSS属于被动式且用于客户端的攻击方式,所以容易被忽略其危害性.其原理是攻击者向有XSS漏洞的网站中输入 ...
随机推荐
- 避免Java异常栈被吞掉
The compiler in the server VM now provides correct stack backtraces for all "cold" built-i ...
- 网络拓扑—DHCP服务配置
目录 DHCP服务搭建 相关配置细节前提 安装DHCP服务 DHCP服务搭建 相关配置细节前提 系统:Windows Server 2003 IP网段:10.0.0.0/24 三台机子: 普通PC机 ...
- 在 JS 中使用 canvas 给图片添加文字水印
实现说明: 1.先通过 new Image() 载入图片: 2.图片加载成功后使用 drawImage() 将图片绘制到画布上: 3.最后使用 fillText() 函数绘制水印. 下面展示了详细用法 ...
- 深入理解 Swoole 的底层加载原理
首发原文链接:深入理解 Swoole 的底层加载原理 PHP 扩展加载 我们从 php-src/sapi/cli/php_cli.c:1159 文件的入口函数 int main(int argc, c ...
- 阅读LXH《FFMPEG+SDL的视频播放器》总结
一.原文地址 https://blog.csdn.net/leixiaohua1020/article/details/46889389 在此向雷霄骅致敬!!! 二.视频播放器实现思路 1)视频播放器 ...
- pands基础--数据结构:Series
从本文开始介绍pandas的相关知识. pandas含有是数据分析工作变得更快更简单的高级数据结构和操作工具,是基于numpy构建的. 本章节的代码引入pandas约定为:import pandas ...
- CF1838A-Blackboard-List
题意简述 在黑板上有两个数字,进行如下操作 \(n-2\) 次: 每次在黑板上选择任意两个数,将两个数的差的绝对值写在黑板上. 这样你会得到一个长度为 \(n (3 \le n \le 100)\) ...
- kettle从入门到精通 第三十六课 kettle carte 集群
1.carte服务可以单体运行也可以集群方式运行,今天我们一起来学习下carte的集群模式部署和使用.本次示例用一个master和两个slave从节点演示. carte-config-master-8 ...
- 由于找不到 XINPUT1_3.dll,无法继续执行代码。重新安装程序可能会解决此问题。
---------------------------EpicGamesLauncher.exe - 系统错误---------------------------由于找不到 XINPUT1_3.dl ...
- ES进阶
https://www.elastic.co/guide/en/elasticsearch/reference/current/cat.html 1.监控接口 访问es的_cat接口,获取不同的属性 ...