XSS攻击又称 跨站脚本攻击,通常指利用网页开发时留下的漏洞,通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序。通俗的讲就是通过web应用可输入参数,输入script脚本实现xss攻击。主要防御措施是通过web页面关键字特殊字符过滤。
XSS攻击的原理:攻击者会在web页面中插入一些恶意的script代码。当用户浏览该页面的时候,那么嵌套在该页面的代码就会执行,因此会达到攻击用户的目的。那根据这个原理,实际上如果没有做任何的限制,有心人就可以为所欲为了。可以在里面嵌入一些关键代码,把你的信息拿走。确实是个很严重的问题。

在常见的开发中需要注意xss跨站脚本的攻击,需要对参数关键字做一些校验与过滤,避免将script脚本存入数据库或者造成数据泄漏等安全问题。
在前端form表单的输入框中,用户没有正常输入,而是输入了一段代码:
input><img src=1 onerror=alert1>
这个正常保存没有问题。问题出在了列表查询的时候,上面的代码就生效了,由于图片的地址乱写的,所以这个alert就起作用了来看图。

Mica,Spring Cloud 微服务开发核心包,支持 web 和 webflux。
mica-xss组件说明:

- <dependency>
- <groupId>net.dreamlugroupId>
- <artifactId>mica-coreartifactId>
- <version>2.0.9-GAversion>
- dependency>
- <dependency>
- <groupId>net.dreamlugroupId>
- <artifactId>mica-xssartifactId>
- <version>2.0.9-GAversion>
- dependency>

添加注解@XssCleanIgnore跳过XSS过滤,该注解可作用于类上和方法上
- import net.dreamlu.mica.xss.core.XssCleanIgnore;
- import org.springframework.web.bind.annotation.GetMapping;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.RestController;
-
- @RestController
- @XssCleanIgnore //设置该注解 用于跳过配置的Xss 防护
- @RequestMapping("/")
- public class IndexController {
-
- @GetMapping("/xss")
- public String xssGet(String data){
- System.out.println(data);
- return data;
- }
- }
参数为:

去掉注解 @XssCleanIgnore ,则data的值为空字符串