Mica-xss 一个防止XSS攻击的过滤插件

2,538 阅读1分钟

XSS是跨站脚本攻击(Cross Site Scripting),为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS。恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户的目的。

相信以上的解释也不难理解,但为了再具体些,这里举一个简单的例子,就是留言板。我们知道留言板通常的任务就是把用户留言的内容展示出来。正常情况下,用户的留言都是正常的语言文字,留言板显示的内容也就没毛病。然而这个时候如果有人不按套路出牌,在留言内容中丢进去一

<script>alert(%27%27)<%2Fscript>  嘻嘻

发布后其他用户访问该网页就出出现问题,Mica-xss 可以很简单的解决这个问题

先写一个测试的接口:

@GetMapping("/xss/test")
public String test(String str) {
    return str;
}

访问:

http://127.0.0.1:8051/xss/test?str=<script>alert('hi')</script> 嘻嘻

image.png

然后,只需一步,引入即可:

<!--XSS 安全过滤-->
<dependency>
    <groupId>net.dreamlu</groupId>
    <artifactId>mica-core</artifactId>
    <version>2.5.0.1</version>
</dependency>
<dependency>
    <groupId>net.dreamlu</groupId>
    <artifactId>mica-xss</artifactId>
    <version>2.5.0.1</version>
</dependency>

再试试,已经自动过滤掉非法的代码

image.png

使用@XssCleanIgnore可排除掉不需要过滤的接口

@XssCleanIgnore
@GetMapping("/xss/test")
public String test(String str) {
    return str;
}