fastjson 又爆 bug 了!快来看看是否受影响

2020-06-01 09:45:40 +08:00
 qqqccc

https://github.com/alibaba/fastjson/wiki/security_update_20200601

是否对你的业务有影响呢?

14176 次点击
所在节点    程序员
78 条回复
jk1030
2020-06-01 09:46:41 +08:00
bugjson
sagaxu
2020-06-01 09:50:06 +08:00
出于什么考量用这个库呢?
raphael008
2020-06-01 09:52:04 +08:00
jackson 不香吗?
qwerthhusn
2020-06-01 09:55:41 +08:00
感觉这个库从 N 多年前就各种各样安全漏洞。。。

但是 jackson 的话,不支持 JSONArray 和 JSONObject 抽象。
有时候不想对某些 json 再做模型定义,然后用 JsonNode 的 API 太麻烦,全程用 LinkedHashMap 和 ArrayList 写起来也不太好看。
yty2012g
2020-06-01 09:57:12 +08:00
已经因为 bugjson,升了 N 次版本了。。。
AngryMagikarp
2020-06-01 10:00:47 +08:00
没用过,不过很奇怪,一个 JSON 库什么会有安全漏洞...
smartdone
2020-06-01 10:02:32 +08:00
@AngryMagikarp 反序列化
GM
2020-06-01 10:05:32 +08:00
@qwerthhusn JsonNode 很好用,超级方便,你是没领悟到它正确用法。
movistar
2020-06-01 10:09:30 +08:00
Jackson 也一堆漏洞,经常有报 case....
别以为用 jackson 就安全啊.....
ZSeptember
2020-06-01 10:09:45 +08:00
@raphael008 哈哈哈哈,jackson 多少安全漏洞,国内没有报导而已。
micean
2020-06-01 10:09:48 +08:00
没影响,一直是 jackson
ixx
2020-06-01 10:12:27 +08:00
@AngryMagikarp #6 因为 json 会用在参数解析上,可以构建特殊 json 远程执行代码....
echo1937
2020-06-01 10:20:41 +08:00
Spring 自带 Jackson,我又不喜欢额外引入过多依赖,一直就用 Jackson 了。

这样有漏洞修补起来也轻松,直接升级 Spring 就行。
qwerthhusn
2020-06-01 10:25:25 +08:00
@GM 额,我理解错了,我一直以为 JsonNode 就是那种 Low-Level 的语法,要解析各种 Token,刚刚仔细看了一下,和 fastjson 的 JSONArray 和 JSONObject 是类似的。。。。。。不过这套 API 没有 getArrayNode()或者 getObjectNode(),必须要先 get()获取父类,只能强转(或者用 instanceof 或者 getNodeType()检查一下)

从今天开始,fastjson 对我来说,一点用都没了!!!我负责的项目下一个 milestone 中有一项就是 get rid of bugjson
Kamiyu0087
2020-06-01 10:31:21 +08:00
所以 FastJSON 和 Jackson 都不能用?
那么 GSON 如何呢?
onikage
2020-06-01 10:33:29 +08:00
上周五也被 bugjson 坑了, {"value":1,"id":2}, 在 bugjson 转一遍输出就变成{"id":2,"value":1}了, 信息没丢,但是在有签名的场景这完全是两个字符串. 不知道为什么这么多人迷信这玩意.
murmur
2020-06-01 10:41:25 +08:00
@onikage 所以说你传 json 不会传字符串么,验签后再反序列化
sagaxu
2020-06-01 10:41:28 +08:00
@Kamiyu0087 gson 官方已经弃坑了
sagaxu
2020-06-01 10:42:29 +08:00
@onikage object 本就是无序的,签名前先排序不是常识吗?
iFlicker
2020-06-01 10:45:43 +08:00
JSONObject 呢

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/677367

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX