6、springboot-防止xxs攻击

疫情大数据平台是一个公益的项目,但很可能被网络上大量的扫描器扫描,并有可能收到脚本的攻击,而进行防御就是很重要的,可以有效的避免我们被攻击。
本篇主要讲述防止xss攻击部分

定义:

​ XSS攻击通常指的是通过利用网页开发时留下的漏洞,通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序。

原理:

​ HTML是一种超文本标记语言,通过将一些字符特殊地对待来区别文本和标记,例如,小于符号(<)被看作是HTML标签的开始,之间的字符是页面的标题等等。当动态页面中插入的内容含有这些特殊字符(如<)时,用户浏览器会将其误认为是插入了HTML标签,当这些HTML标签引入了一段JavaScript脚本时,这些脚本程序就将会在用户浏览器中执行。所以,当这些特殊字符不能被动态页面检查或检查出现失误时,就将会产生XSS漏洞。

1、Springboot XSS过滤插件(mica-xss)

mica-xss组件说明:

1、对表单绑定的字符串类型进行 xss 处理。

2、对 json 字符串数据进行 xss 处理。

3、提供路由和控制器方法级别的放行规则。

配置

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pcTCrAlU-1653486656214)(9、springboot-防止xss攻击.assets/1234sad.png)]

引入即可

<dependency>
      <groupId>net.dreamlu</groupId>
      <artifactId>mica-xss</artifactId>
      <version>2.0.9-GA</version>
 </dependency>
<dependency>
    <groupId>net.dreamlu</groupId>
    <artifactId>mica-core</artifactId>
    <version>2.1.0-GA</version>
</dependency>

这样就可以了,但本篇主要讲述手动构造的方式进行

过程主要是三步:包装request->创建过滤器->添加过滤器

首先创建包装request的类,主要是对请求头和请求体中的有效字符进行逐个过滤,将有攻击性的字符进行逐一替换,让其在不失去原有功能的情况下,失去攻击性,是通过装饰模式补充父类HttpServletRequestWrapper让xss的更新直接调配可以加入

public class Xss extends HttpServletRequestWrapper {
   

    public XssHttpServletRequestWrapper(HttpServletRequest request) {
   
        super(request);
    }

    @Override
    public String[] getParameterValues(String parameter) {
   
        String[] values = super.getParameterValues(parameter);
        if (values==null)  {
   
            return null;
        }
        int count = values
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值