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漏洞的网站中输入 ...
随机推荐
- neo4j的安装部署
Linux下载neo4j 直接在服务器上使用命令下载: curl -O http://dist.neo4j.org/neo4j-community-3.4.5-unix.tar.gz 安装Neo4j ...
- 面向K-12学生的远程访问学校计算机实验室
为了应对新冠肺炎大流行,许多学校被迫采用远程学习和混合时间制度.在家学习的学生必须使用自己的个人设备或学校提供的设备(例如 Chromebook )来完成课堂作业. 尽管许多解决方案可以帮助学生和 ...
- Spring6 的JdbcTemplate的JDBC模板类的详细使用说明
1. Spring6 的JdbcTemplate的JDBC模板类的详细使用说明 @ 目录 1. Spring6 的JdbcTemplate的JDBC模板类的详细使用说明 每博一文案 2. 环境准备 3 ...
- 网络拓扑—WEB-IIS服务搭建
目录 WEB-IIS服务搭建 网络拓扑 配置网络 IIS PC 安装IIS服务 配置IIS服务(默认站点) PC机访问网页 配置IIS服务(新建站点) PC机访问网页 WEB-IIS服务搭建 网络拓扑 ...
- 导入使用es
from django.shortcuts import render, HttpResponsefrom elasticsearch import Elasticsearchfrom elastic ...
- 记录一次对MQTT协议的渗透测试经历
前言 由于工作需要,特意翻查了MQTT的相关漏洞,并一一学习复现,在此做以学习记录,没有恶意,如有抄袭,请私信作者删除. 技术文章仅供参考,此文所提供的信息只为网络安全人员对自己所负责的网站.服务器等 ...
- GROK 一个强大的调试工具
GROK 在线工具 在线英文版地址 http://grokconstructor.appspot.com/ 中文翻译版 GitHub https://github.com/systemmin/Grok ...
- 环境变量管理工具Modules的安装
一.软件依赖tcl软件 (1)tcl下载地址:http://www.tcl-lang.org/software/tcltk/(2)编译安装 cd unix/ ./configure --prefix= ...
- supersocket实际应用之你画我猜游戏(一)
supersocket这款组件,让不懂tcp/ip的人都能开发出网络应用.我们不必在开发与自己主要应用不相关的代码了,主要精力都能放在设计业务逻辑上面了. 现在使用现成又完备的组件,真是大大的提高了开 ...
- weinre 远程实时调试手机上的Web页面 JAVASCRIPT远程调试
版权归作者所有,任何形式转载请联系作者.作者:U_U(来自豆瓣)来源:https://www.douban.com/note/289846168/ 调试前端页面我一直使用着神器Chrome开发人员工具 ...