45. 从零开始学springboot撸一个Xss过滤器-注解实现

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了45. 从零开始学springboot撸一个Xss过滤器-注解实现相关的知识,希望对你有一定的参考价值。

参考技术A 上章通过Filter实现了Xss全局过滤器

可能小伙伴还有点不满, 全局意味着“一刀切”,
虽然我们也有白名单黑名单设置, 但是, 白名单黑名单针对的是整个方法或整个实体类

举个例子, 我定义了个实体

可能业务上有限制(比如name限制了只有5个字符长),

那么name其实不可能存在Xss注入风险了,

程序只需要对info和des属性做转义即可

如果采用Filter, 意味着People的所有属性都会检测转义, 好像没啥必要!

那么, 可以针对性的指定字段进行Xss的过滤转义么?

为了应对这样的需求, 咸鱼君采用Aop注解来实现这么个Xss过滤器.

PS: 和Filter一样, 我们统一对入参Xss过滤, 确保参数的处理方式统一! 所以, 程序中获取的参数值都是转义后的数据!!

废话不多说, 往下看!

加入必要的pom依赖

针对方法, 参数, 属性分别定义三个注解

XssMethod

XssParam

XssField

针对注解实现切面Aspect

XssAspect

注释写的很详细, 就不多废话了!

接下来我们写个案例来测试测试

首先在启动类上启用切面

定义一个实体People, 并对info,des属性加上注解进行xss过滤

最后编写controller

json方式

键值对方式

https://github.com/MrCoderStack/SpringBootDemo/tree/master/sb-xssaop

以上是关于45. 从零开始学springboot撸一个Xss过滤器-注解实现的主要内容,如果未能解决你的问题,请参考以下文章

从零开始撸unity特效

从零开始学SpringBoot之SpringBoot WebSocket原理篇

从零开始学springboot-6.手写拦截器和自定义注解

从零开始学Spring Boot

从零开始学数据结构和算法:成功入职腾讯月薪45K

4. 使用别的json解析框架从零开始学Spring Boot