API成批分配漏洞修复

ops/2024/12/15 17:34:04/

使用jackson增加全局序列化方式,校验所有接口入参,判断是否包含多余入参,比如原本后端接收的入参为:

java">{
​"name":"张三",
​"age":"22",
​"high":"183"
​
}

如果前端传参多了其他的字段,比如:

java">{"name":"张三","age":"22","high":"183","weight":"160"
}

就会被下面的拦截处理给拦截然后报错。

java">@Configuration
@RefreshScope
public class WebConfigurer extends WebMvcConfigurationSupport {
​@Value("${ultra.jackjson.status}")private String status;
​
​@Beanpublic AuthenticationInterceptor authenticationInterceptors() {return new AuthenticationInterceptor();}
​
​/*** 请求前拦截处理** @param registry*/@Overridepublic void addInterceptors(InterceptorRegistry registry) {registry.addInterceptor(authenticationInterceptors()).addPathPatterns("/**");super.addInterceptors(registry);}
​@Overridepublic void addResourceHandlers(ResourceHandlerRegistry registry) {registry.addResourceHandler("doc.html").addResourceLocations("classpath:/META-INF/resources/");registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");}
​/*** 全局序列化方式** @param converters*/@Overridepublic void configureMessageConverters(List<HttpMessageConverter<?>> converters) {//Jackson的全局序列化方式if ("open".equals(status)){configureJacksonHttpMessageConverter(converters);}}/*** Jackson的全局序列化方式** @param converters*/private void configureJacksonHttpMessageConverter(List<HttpMessageConverter<?>> converters) {MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter();ObjectMapper objectMapper = new ObjectMapper();//反序列化的时候如果多了其他属性,不抛出异常objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, true);converter.setObjectMapper(objectMapper);converters.add(converter);converters.add(new StringHttpMessageConverter(StandardCharsets.UTF_8));}
}


http://www.ppmy.cn/ops/142167.html

相关文章

spring cloud contract http实例

微服务很多时&#xff0c;服务之前相互调用&#xff0c;接口参数的一致性要变得很难维护。 spring cloud contract 提供了测试接口一致性的方法。 一 项目配置 plugins {id "groovy"id "org.springframework.cloud.contract" version "4.0.5"i…

FFmpeg功能使用

步骤&#xff1a;1&#xff0c;安装FFmpeg Download FFmpeg 在这里点击->Windows builds from gyan.dev&#xff1b;如下图 会跳到另外的下载界面&#xff1a; 在里面下拉选择点击ffmpeg-7.1-essentials_build.zip&#xff1a; 即可下载到FFmpeg&#xff1b; 使用&#…

使用html 和javascript 实现微信界面功能1

1.功能说明&#xff1a; 搜索模块: 提供一个搜索框&#xff0c;但目前没有实现具体的搜索功能。 好友模块: 在左侧的“好友”部分有一个“查看好友”按钮。点击左侧的“查看好友”按钮时&#xff0c;会在右侧显示所有好友的列表。列表中每个好友可以点击查看详情&#xff0c;包…

网络安全教学博客(二):常见网络安全威胁剖析

在上一篇博客中&#xff0c;我们了解了网络安全的基础概念和重要性。今天&#xff0c;让我们深入探讨一下常见的网络安全威胁&#xff0c;以便我们能够更好地识别和防范它们。 恶意软件&#xff08;Malware&#xff09; 病毒&#xff08;Virus&#xff09;&#xff1a;病毒是一…

vue +element 导入导出 文件太大,导致超时问题

今天遇到一个问题就是数据量过大时候一次性导入导出会出现一直加载问题&#xff0c;原本我修改了针对这两个接口不限制请求超时时间&#xff0c;发现没有用 // 导入 export function importSaleorder(data) {return request({url: xnkj/order/saleorder/importSaleorder,heade…

负载均衡,高可用,监控服务搭建总结

LVS-NAT1.装ipvsadm包2.配置内核参数开启路由转发功能:/etc/sysctl.conf3.搭建lvs-nat负载均衡服务(添加虚拟服务器和真实服务器)LVS-DR1.装ipvsadm和network-scripts包2.调整内核参数设置arp_ignore和arp_annunce3.配置虚拟网卡,实现共享ip:/etc/sysconfig/network-scripts/4.…

httpsok-v1.18.0-SSL证书自动续期

&#x1f525;httpsok-v1.18.0-SSL证书自动续期 介绍 httpsok 是一个便捷的 HTTPS 证书自动续期工具&#xff0c;基于全新的设计理念&#xff0c;专为 Nginx 、OpenResty、Apache 等服务器设计。已服务众多中小企业&#xff0c;稳定、安全、可靠。 一行命令&#xff0c;一分…

嵌入式驱动开发详解16(音频驱动开发)

文章目录 前言WM8960简介I2S协议接口说明 SAI音频接口简介驱动框架简介设备树配置内核使能声卡设置与测试 后续参考文献 前言 该专栏主要是讲解嵌入式相关的驱动开发&#xff0c;但是由于ALSA驱动框架过于复杂&#xff0c;实现音频编解码芯片的驱动不是一个人能完成的&#xf…