松门建设规划局网站,做标书分享网站,项目管理师pmp报考条件,购物网站开发软件在复现完fastjson1.2.24-1.2.80和jackson的所有相关漏洞后#xff0c;总结的一些规则
以下均指对json的反序列化过程
setter
fastjson调用setter#xff1a;遍历所有方法#xff0c;找出所有满足setter要求的方法#xff0c;再根据传入的json去反射调用
jackson调用set…在复现完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、fastjson1.2.36 可用$ref调用getter
解析函数里有JSON.toJSON还会调用getterparseObject
jackson调用getter
1、没有setter有getter方法。可以直接反序列化调用
2、jackson-databindcoreannotations2.13.3通过POJONode调用getter
构造方法
fastjson调用构造方法
如果存在无参构造方法则将其作为构造方法否则使用参数数量最多且排在最前面的构造方法。
jackson调用构造方法
按照顺序如果有参构造的参数能对应上直接调用