导航:首页 > 编程语言 > fastjson的jar

fastjson的jar

发布时间:2023-02-02 05:19:35

① 阿里巴巴旗下-Fastjson工具

fastjson是阿里巴巴公司出品的一个java语言编写的高性能且功能完善的JSON函数库,他采用一种“假定有序快速匹配”的算法,把JSON parse的性能提升到极致,号称是目前java语言中最快的JSON库。Fastjson接口简单易用,已经被广泛使用在缓存序列化,协议交互。Web输出、Android客户端等多种应用场景。
序列化:
JSON.toJSONString(getDataToGson())
反序列化:
JSON.parseObject(JSON_STRING).toString()
由于是java语言是互通的,因此,在以前的Android上使用时,Fastjson不可避免的引入了很多对于Android而言冗余的功能,从而增加了包的大小,很多人使用的就是标准版本的fastjson,但事实上,fastjson还存在一个专门为android定制的版本-fastjson-android。和标准版相比,Android版本中去掉了一些Android虚拟机dalvik不支持的功能,使得jar更小。 (本人并未试过)

如果对您有用请给个点赞收藏可好?

② 如何给Android工程的libs目录下的jar包附加源码

1

在Eclipse新建Android工程,里面只有一个MainActivity,在点击按钮的时候,我们想调用fastjson把一个Person对象转化成json字符串。

2

但是,如果想查看libs目录下面的fastjson-1.1.21.jar的源码是看不了的。

3

并且也没有附加源码的按钮。如果在fastjson-1.1.21.jar上点击右键->"Properties",打开Properties对话框,可以看到说:这是Android的私有类库,不允许附加源码。
4

接下来,在项目的根目录下新建libsrc目录,然后把fastjson-1.1.21-sources.jar放到libsrc下面。然后新建fastjson-1.1.21.jar.properties,放到lib下面。fastjson-1.1.21.jar.properties里面输入:
src=../libsrc/fastjson-1.1.21-sources.jar

5

重启Eclipse,然后再查看源码。

6

可以看到我们成功的把源码关联上了。需要说明的是,properties文件里面的src路径不仅仅可以是源码jar包,也可以是源码的文件夹,只需要把路径写正确就可以了。

③ Fastjson 1.83漏洞利用猜想

在不久前fastjson<1.2.83又爆出来了新的问题,详细内容可以参考 https://github.com/alibaba/fastjson/wiki/security_update_20220523 ,这篇文章主要是抛转引玉,写一种可能的利用思路,详细的利用链可能要等大佬们来给出了。

文内如有不妥之处,还请批评指正。

特定依赖存在下影响 ≤1.2.80

首先看白名单对比:

这里参考之前git上的白名单列表 https://github.com/LeadroyaL/fastjson-blacklist

像org.springframework中的基本全部从白名单中剔除了。

并且更改了判断方式,if (typeName.endsWith("Exception") || typeName.endsWith("Error"))

那么这里就可以猜测本次影响的方式,就是和被剔除的内容相关。这里用org.springframework..CannotAcquireLockException进行测试,可以发现实际上最终调用的类是Throwable。

那么如果是要找gadget的话,就需要从黑名单下手了。本文不做分析和介绍,有兴趣找gadget的话可以去研究研究。

需要使用1.2.80和1.2.83的fastjson jar包进行测试。

maven

demo:

上重点从checkAutoType开始,简单的说一下判断过程。

首先是判断safeModeMask,通常默认是不会开的。

检测黑名单

通过黑白名单的检测,就会尝试从Mapping中获取类

走到这里如果是白名单里的内容会尝试进行加载。

并且会直接拿到对应的类,不会再进行接下来的校验。

由于存在继承调用关系,所以在进行加载的时候就会加载f1283,并且会重新进行checkAutoType的判定。

检测过程中会先将expectClassFlag置为true。

接着检测黑名单内容,Mapping获取以及白名单检测无果之后会对clazz的类型进行校验。

接着会进行新一轮的检测。

检测通过之后,会进行类继承关系判断,实际上只要继承关系正确,就会直接进行反序列化。

最后的结果

如果直接使用java.lang.Throwable会直接抛出异常。

我们来跟一下可以很清楚的看到,Throwable既不是黑名单,也不是白名单,也不是mapping中的内容。

那么在流程中就会将这个类当做一个普通的类来进行处理,通过判断autoTypeSupport为未开启的状态,从而进行抛出处理。

④ 新手学java,请问我下载的JAR的文件,我怎么使用呀

不是的,那是一个jar包,封装好的类库,如果需要用到这个json提供的方法,可以把这个jar文件导入到library中才可以使用。

⑤ fastjson-1.2.6.jar 要放到哪个目录下

一般统一把jar包放在项目工程的lib目录下,然后添加到工程的build path中就可以使用了

⑥ 使用fastjson需要什么jar包

需要的jar包如图:

至于需要哪个版本的,就看你自己了

⑦ springboot 返回json问题

第一个问题
不加responsebody的话,应该是不行的,因为spring mvc的话,默认会根据controller的返回值去专映射view,加了responsebody就不会属去映射view而是直接返回到response的body里面
第二个问题
一般的restfule接口或者ajax调用,都要求返回的是json格式的字符串,这样方便解析。如果是controller里面返回的是字符串,那么response就直接将字符串返回,如果是对象,那么需要使用一些格式化工具,将java对象转为字符串在返回。所以我的认知是,fastjson啥的只是一个转换工具,跟responsebody本身没啥直接联系,只是json工具比较方便我们开发restful或者ajax接口的工具

⑧ java中的fastjson.jar从哪里下载

阿里的jar,到阿里云的maven仓库下,肯定是最完整准确的,如下地址:阿里云maven仓库

选择search"fastjson",或者view,从central中按照com/alibaba/fastjson/版本号属 找

⑨ com.alibaba.fastjson.json 在哪个jar包

<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.4</version>
</dependency>

阅读全文

与fastjson的jar相关的资料

热点内容
iphone5s最省电的浏览器 浏览:225
用数据线如何接摄像头 浏览:110
qq手机电脑互传文件 浏览:613
linux内核升级方法 浏览:986
iphone5没有热点 浏览:189
哪里有在线幼儿c语言编程 浏览:959
iframe跨域调用js对象 浏览:178
苹果手机能分文件夹吗 浏览:679
fdb文件怎么删除里面内容 浏览:638
龙江网络配置什么路由器 浏览:169
如何使用指标导入数据 浏览:866
平时用什么app看nba 浏览:503
win10想以管理员身份运行bat文件 浏览:85
合并单元格中的其他数据如何排序 浏览:331
电脑窗口程序在哪 浏览:281
前女友把我微信删了又加什么意思 浏览:655
win10不识别无线xboxone手柄 浏览:403
汽车之家app怎么看成交价 浏览:908
abc文件破解密码 浏览:516
怎么登录米家app账号 浏览:165

友情链接