導航:首頁 > 編程語言 > 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相關的資料

熱點內容
熊貓看書哪個文件夾 瀏覽:650
win10勒索文件保護設置 瀏覽:842
arcgissde93安裝教程 瀏覽:487
xml文件注釋快捷鍵 瀏覽:878
extjs的配置文件怎麼配置重定向 瀏覽:740
access資料庫查看aspx 瀏覽:154
數控編程如何減少時間 瀏覽:779
蘋果FLAC屬性 瀏覽:642
硬碟評分工具 瀏覽:734
為什麼e福州app登不上 瀏覽:963
jsfoutputlink 瀏覽:472
哪個網站可以聽南音 瀏覽:264
蘋果裝系統裝win7驅動 瀏覽:686
php判斷file是否有文件 瀏覽:979
和平精英使用什麼編程開發 瀏覽:102
f3文件 瀏覽:523
快手3d環繞音樂用什麼app 瀏覽:376
linux新增一個文件 瀏覽:440
消失的手機圖片在哪個文件夾里 瀏覽:610
word2010表格外框雙線內框單線 瀏覽:56

友情鏈接