首页 > 编程知识 正文

fastjson github(fastjson序列化)

时间:2023-05-06 17:51:30 阅读:91910 作者:4705

背景

fastjson出现了严重的漏洞,攻击者可以瘫痪整个业务

脆弱性的说明

常见的JSON组件FastJson在远程代码执行方面存在漏洞,攻击者可以通过使用精心构建的JSON消息向目标服务器发出任意命令来获得服务器权限。 这次爆发的脆弱性是以往脆弱性中绕过autoType的。

影响范围

FastJson 1.2.48

最近,关于fastjson的新闻引起了很多人的关注! 许多开发者突然意识到,fastjson已经深入到我们开发工作的各个方面。 那么,除了尽快升级你的json之外,我们来挖掘一下fastjson最常用的用法吧。

fastjson的一般方式

1 .依赖于1.maven (我记得升级到1.2.48版以上哦) ) ) ) )。

! --https://mvn资料档案库.com/artifact/com.Alibaba/fast JSON-- -

从属关系

groupIdcom.alibaba/groupId

artifactIdfastjson/artifactId标识

版本1.2.62 /版本

/dependency2.FastJson在解析json格式的字符串时主要使用了以下三个类。

(1) JSON :用于将JSON格式的字符串与JSON对象以及javaBean进行转换的fastjson的解析器。

)2) JSON对象: Fast JSON提供的JSON对象。

3 ) jsonArray:fastJson提供了JSON数组对象。

3 .常用方式

3.1字符串和java对象

实例1 :从对象到json字符串

映射,字符串映射=新海量映射字符串,字符串(;

映射('代码','0' );

地图.推送(消息)、)确定);

string JSON=JSON.tojsonstring (地图;

系统输出打印机(JSON; 输出结果如下。

“代码”:“0”,“消息”:“确定”实例2 :字符串转换对象

映射,字符串映射=新海量映射字符串,字符串(;

映射('代码','0' );

地图.推送(消息)、)确定);

string JSON=JSON.tojsonstring (地图;

系统输出打印机(JSON;

mapobj=(地图) JSON.parse ) JSON;

system.out.println (代码=' obj.get )、消息=' obj.get )、消息); 输出结果

代码: 0,消息:确定

代码=0,消息=ok 3.2工具类JSon对象

publicstaticvoidmain (字符串[ ]数组) {

映射,字符串映射=新海量映射字符串,字符串(;

映射('代码','0' );

地图.推送(消息)、)确定);

string JSON=JSON.tojsonstring (地图;

系统输出打印机(JSON;

mapobj=(地图) JSON.parse ) JSON;

system.out.println (代码=' obj.get )、消息=' obj.get )、消息);

字符串代码=JSON .透视对象(JSON ).Getstring ('代码);

字符串消息=JSON .透视对象(JSON ).getstring ('消息);

system.out.println ('代码='代码',消息='消息);

}输出结果

代码: 0,消息:确定

代码=0,消息=确定

代码=0,消息=确定3.3数组对象

列表用户=新阵列用户(JSON阵列.透视阵列) JSON字符串,用户类);

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。