fastjson/jackson对getter,setter和constructor的区分

在复现完fastjson1.2.24-1.2.80和jackson的所有相关漏洞后,总结的一些规则

以下均指对json的反序列化过程

setter

fastjson调用setter:遍历所有方法,找出所有满足setter要求的方法,再根据传入的json去反射调用

jackson调用setter:直接对传入的json中的字段拼接上set,然后去取setter

其实二者一样,但是fastjson不能调用私有和受保护setter,而jackson可以

getter

fastjson调用getter:

1、没有setter方法,有getter方法。且getter满足:参数长度为0,返回类型是属于Collection 或其子类、Map 或其子类、AtomicBoolean、AtomicInteger、AtomicLong的一种

2、fastjson>=1.2.36 可用$ref调用getter

解析函数里有JSON.toJSON,还会调用getter(parseObject)

jackson调用getter:

1、没有setter,有getter方法。可以直接反序列化调用

2、jackson-databind&core&annotations>=2.13.3,通过POJONode调用getter

构造方法

fastjson调用构造方法:

  • 如果存在无参构造方法,则将其作为构造方法
  • 否则使用参数数量最多且排在最前面的构造方法。

jackson调用构造方法:

  • 按照顺序,如果有参构造的参数能对应上,直接调用
相关推荐
神仙别闹1 分钟前
基于Java+VUE+MariaDB实现(Web)仿小米商城
java·前端·vue.js
风象南3 分钟前
SpringBoot的4种抽奖活动实现策略
java·spring boot·后端
蓝桉~MLGT11 分钟前
java高级——高阶函数、如何定义一个函数式接口类似stream流的filter
java·开发语言·python
CYRUS_STUDIO16 分钟前
一文搞懂 SO 脱壳全流程:识别加壳、Frida Dump、原理深入解析
android·安全·逆向
Bruce_Liuxiaowei18 分钟前
深度剖析OpenSSL心脏滴血漏洞与Struts2远程命令执行漏洞
struts·安全·web安全
甜甜的资料库42 分钟前
基于微信小程序的作业管理系统源码数据库文档
java·数据库·微信小程序·小程序
科技小E4 小时前
打手机检测算法AI智能分析网关V4守护公共/工业/医疗等多场景安全应用
人工智能·安全·智能手机
行云流水剑6 小时前
【学习记录】使用 Kali Linux 与 Hashcat 进行 WiFi 安全分析:合法的安全测试指南
linux·学习·安全
KKKlucifer6 小时前
加密通信 + 行为分析:运营商行业安全防御体系重构
网络·安全·重构
有梦想的骇客6 小时前
书籍“之“字形打印矩阵(8)0609
java·算法·矩阵