[TOC] # common-spring-boot-starter common-spring-boot-starter 提供了平台通用安全过滤拦截功能 ## xss安全防护 在项目中,用户可能会输入类似 script alert(1)脚本导致系统安全问题,Antisamy是OWASP(open web application security project)的一个开源项目,其能够对用户输入的html/css/javascript 脚本进行过滤,确保输入满足规范,无法提交恶意脚本。Antisamy被应用在web服务中对存储型和反射性的xss防御,尤其是在存在富文本输入的场景,antisamy能够很好的解决用户输入体验和安全要求之间的冲突。 * xss安全配置 ![](https://img.kancloud.cn/58/38/58389333992d94350fdc99fec6f21950_2479x983.png) ## 请求响应参数加密解密 在项目中有许多接口都需要加解密,**保证数据的安全性,为了抽象出这一类接口的共性**。 而在我们的接口设计中,加密后的参数是以整个body来传送密文的,项目运用行为型策略模式进行枚举接口设计。 ### 条件装配 ![](https://img.kancloud.cn/c2/64/c26469ce6217e7906432971b09f15d19_2520x950.png) ### 通过RequestBodyAdvice进行解密 通过*设计模式*之*策略模式*(*行为*型)进行设计优化项目,对比原版项目 ![](https://img.kancloud.cn/46/49/46493e986d01eb3ee4250033d8467866_2260x919.png) ### 通过ResponseBodyAdvice进行加密 通过*设计模式*之*策略模式*(*行为*型)进行设计优化项目 ![](https://img.kancloud.cn/c3/d6/c3d6261d7c58def8afd9571c0d093958_2286x944.png) ### 枚举解密接口 ![](https://img.kancloud.cn/9f/bb/9fbbca5c2213bcd0b8c26a4db08316a5_2482x1103.png) ### 枚举加密接口 ![](https://img.kancloud.cn/8a/b4/8ab43e32940a3210faf48e2344fdf0de_2443x1111.png) ### 使用配置 ``` encrypt: body: aes-key: 12345678 # AES加密秘钥 des-key: 12345678 # DES加密秘钥 sm-key: 0123456789abcdeffedcba9876543210 ``` ### 编写接口 ``` @PostMapping("/enc") @SMEncryptBody @SMDecryptBody @ResponseBody public String enc(@RequestBody String param) { System.out.println(param);return param ; } ``` ### 测试接口 ![](https://img.kancloud.cn/ae/16/ae162fb14c82b22d921c7ec04481152e_2151x753.png)