最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

安全問題我們需要重視,立刻升級fastjson2

2023-06-13 11:35 作者:庫爾--  | 我要投稿

一、前言

小伙伴大家好,我是開源字節(jié)快速開發(fā)平臺的作者。fastjson2.0 是fastjson的重要升級,目標(biāo)是為下一個十年提供一個高性能的JSON庫,同一套API支持JSON/JSONB兩種協(xié)議。

近期fastjson 再報安全漏洞,直接給我們發(fā)送了高危告警,因此升級fastjson迫在眉睫。



FasterXML Jackson是美國FasterXML公司的一款適用于Java的數(shù)據(jù)處理工具。Jackson-databind是其中的一個具有數(shù)據(jù)綁定功能的組件。Jackson-databind可以將Java對象轉(zhuǎn)換成json對象,同樣也可以將json轉(zhuǎn)換成Java對象。

暫且不說 fastjson2 的性能提升,在安全方面也值得我們?nèi)ド?,這也是我們必須要去做的事。

二、罪魁禍?zhǔn)?AutoType

fastjson、jackson 都支持 AutoType 功能,這個功能在序列化的 JSON 字符串中帶上類型信息,在反序列化時,不需要傳入類型,實(shí)現(xiàn)自動類型識別。

三、fastjson1 安全問題

fastjson 1.x 內(nèi)部維護(hù)了一個白名單,java 發(fā)展近 30 年難免有些漏網(wǎng)之魚,這也造成近幾年 fastjson 安全漏洞頻發(fā)。

四、fastjson2 的設(shè)計

  • fastjson2 AutoType 必須顯示打開才能使用,沒有任何白名單,也不包括任何 Exception 類的白名單。這可以保證缺省配置下是安全的。

序列化時帶上類型信息,需要使用 JSONWriter.Feature.WriteClassName。比如:

很多時候,root對象是可以知道類型的,里面的對象字段是基類或者不確定類型,這個時候不輸出root對象的類型信息,可以減少序列化結(jié)果的大小,也能提升反序列化的性能。

反序列化打開AutoType功能支持自動類型

  • fastjson2 AutoType 支持配置 safeMode,在 safeMode 打開后,顯式傳入 AutoType 參數(shù)也不起作用,具體配置如下:

  • fastjson2 AutoType 會經(jīng)過內(nèi)置黑名單過濾。該黑名單能攔截大部分常見風(fēng)險,這個機(jī)制不能保證絕對安全,打開 AutoType 不應(yīng)該在暴露在公網(wǎng)的場景下使用。


  • 五、序列化示例代碼

  • 使用FastJson2JsonRedisSerializer實(shí)現(xiàn)RedisSerializer接口

六、升級到 fastjson2

6.1 兼容模式升級

升級可以通過兼容模式升級,兼容模式不需要改代碼,但在深度使用的場景,不能做到完全兼容。

  • 兼容模式Maven依賴

6.2 使用新API升級

使用新API是建議的升級方式,使用新的API能獲得更多的功能。

  • 包名編程 FASTJSON v2和1.x版本使用不同的package,新的package名稱是com.alibaba.fastjson2,新package和之前不同,可以實(shí)現(xiàn)1.x和2.x共存

  • Maven依賴 Maven依賴的groupId和1.x不同,使用了新的groupIdcom.alibaba.fastjson2

我們的項目沒有強(qiáng)制依賴 fastjson1,所以選擇了直接升級新 API。

最后

fastjson2 在性能和安全上都得到了很好的提升,開源字節(jié)開快速開發(fā)平臺已經(jīng)完成了升級,代碼改動較大,fork了我們倉庫的同學(xué)請及時更新,安全無小事,請慎重。

如若轉(zhuǎn)載,請注明出處:開源字節(jié) ? https://sourcebyte.vip/article/320.html


安全問題我們需要重視,立刻升級fastjson2的評論 (共 條)

分享到微博請遵守國家法律
临沭县| 黔西| 芜湖市| 托克托县| 长武县| 黑龙江省| 金寨县| 徐闻县| 高台县| 武鸣县| 礼泉县| 涞源县| 泸溪县| 宁阳县| 昆山市| 彭水| 辛集市| 高淳县| 读书| 正阳县| 昆明市| 磐安县| 芮城县| 五家渠市| 长兴县| 西峡县| 三亚市| 远安县| 杨浦区| 吕梁市| 湘西| 宿迁市| 合作市| 巫溪县| 平顶山市| 洪江市| 高碑店市| 崇仁县| 仪征市| 阿巴嘎旗| 策勒县|