API 成批分配说明
原因:
如果 API 端点自动将提供数据的客户机转换为内部对象属性,而不考虑这些属性的敏感度和暴露水平,则 API 端点容易受到成批分配攻击。
风险:
API 成批分配利用可能导致特权升级、数据篡改、绕过安全机制。
修订建议:
常规
避免使用自动将客户机输入数据绑定到代码变量或内部对象的功能。如果适用,请为输入数据有效内容明确定义并实施模式
举个栗子
这是一个POST请求及其正确的传入的参数json
http://127.0.0.1:5101/*****/****
{
"countType":2,
"yearStr":"2023"
}
而出现api成批分配问题的请求是
http://127.0.0.1:5101/*****/****
{
"countType":2,
"yearStr":"2023",
"ddddd":"后端不存在接收参数"
}
但SpringBoot仍会把无效的
ddddd
参数反序列化,向后台发送不需要的参数,
解决方案
如果SpringBoot使用的默认jackson做的序列化,可以考虑对jackson配置来解决传冗余参的问题。
spring:jackson:serialization:# 某些类对象无法序列化的时候,是否报错fail_on_empty_beans:truedeserialization:# json对象中有不存在的属性时候,是否报错fail_on_unknown_properties:true
版权归原作者 qq_41973013 所有, 如有侵权,请联系我们删除。