XSS防护
大约 2 分钟约 568 字
XSS防御
blade-xss-spring-boot-starter是一个XSS跨站脚本攻击防护组件,它提供了一个XssFilter,用于对请求参数进行过滤,从而有效防止XSS攻击,过滤掉恶意的脚本代码。
XSS攻击通常指的是通过利用网页开发时留下的漏洞,通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序。 这些恶意网页程序通常是JavaScript,但实际上也可以包括Java、 VBScript、ActiveX、 Flash 或者甚至是普通的HTML。 攻击成功后,攻击者可能得到包括但不限于更高的权限(如执行一些操作)、私密网页内容、会话和cookie等各种内容。 -- 摘自:百度百科
例如:
当前端传递的参数包含相应的脚本代码时,会被过滤掉。例如,如果调用方传递了<script>alert('XSS')</script>,后端接收到的参数将会被过滤为 alert('XSS'),即会将<script>标签过滤掉。
主要功能
- XSS跨站脚本攻击防护
项目结构
blade-xss-spring-boot-starter 项目结构清晰,主要包含以下几个目录:
annotation: 包含@NoXss注解,用于标记不需要XSS过滤的方法。cleaner: 包含XSS清理器接口和实现,使用Hutool库进行XSS清理。filter: 包含XssFilter过滤器,用于拦截和处理HTTP请求。properties: 包含XssProperties配置类,用于配置XSS防护参数。serializer: 包含自定义的JSON序列化和反序列化器,用于在JSON处理过程中进行XSS防护。wrapper: 包含XssRequestWrapper请求包装器,用于包装HttpServletRequest以实现输入净化。XssConfiguration.kt: 自动配置类,负责初始化和配置XSS防护组件。
引入依赖
Gradle(KTS)
implementation("team.aikero.blade:blade-xss-spring-boot-starter:${latestVersion}")Maven
<dependency>
<groupId>team.aikero.blade</groupId>
<artifactId>blade-xss-spring-boot-starter</artifactId>
<version>${latestVersion}</version>
</dependency>使用
无需任何配置,引入依赖即可。
