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过滤器-注解实现的主要内容,如果未能解决你的问题,请参考以下文章