fastjson 真就突出一个阴魂不散

2022-05-25 09:52:12 +08:00
 fanxasy
接集团预警通报 2022 年第 13 号:监测发现,Java 开发组件 fastjson 存在反序列化漏洞。fastjson 被众多 java 软件作为组件集成,广泛存在于 java 应用的服务端代码中。攻击者可利用上述漏洞实施任意文件写入、服务端请求伪造等攻击行为,造成服务器权限被窃取、敏感信息泄漏等严重影响。此次事件影响 fastjson 1.2.80 及之前所有版本。目前,已发布 fastjson 最新版本 1.2.83 以修复该漏洞,组件升级地址为: https://github.com/alibaba/fastjson/releases/tag/1.2.83 。请各系统建设部门及时排查梳理受影响情况,在确保安全的前提下修复漏洞、消除隐患,提高网络系统安全防护能力,严防网络攻击事件。同时,加强安全监测,做好应急处置准备,发现突出情况要迅速处置并第一时间报告数据中心。
14078 次点击
所在节点    Java
97 条回复
mmdsun
2022-05-26 11:55:00 +08:00
阿里出品,必属()
zhongjun96
2022-05-26 18:38:50 +08:00
@bthulu 现在都直接 @Data 了。而且正常一个接口几十个字段,一个一个加 set 方法也很蠢啊。fastjson 就可以同时兼容下划线和驼峰
blankmiss
2022-05-26 20:06:56 +08:00
@nine
存在即合理的真实意思
合理的东西是实在的东西,然后才是实在的东西是合理的
xuanbg
2022-05-27 02:21:58 +08:00
@zhongjun96 可以在 userName 字段上用 @JsonProperty("user_name")注解来指定输入的 user_name 字段对应到 bean 字段 userName
xuanbg
2022-05-27 02:31:15 +08:00
@zhongjun96 哦哦,同时支持只能加个 set 方法。。。但这似乎是代码规范化的问题吧?接口不应该有统一的数据规范么,连 key 的名称都不一样是什么鬼?是不是你还要兼容有人用 UserName ?
zhongjun96
2022-05-27 09:00:39 +08:00
@xuanbg #84 我只是举个例子。最基本的,对接多家第三方 api 的话,下划线和驼峰肯定都是有的。抽取成静态 api 的话就只能支持一种。不然就要手动加注解。实际用起来是不如 fastjson 的
golangLover
2022-05-29 16:42:13 +08:00
@dqzcwxb fj 的同一个问题出现几十次了。。。
liian2019
2022-05-31 14:10:39 +08:00
无脑喷的人多少没脑子的
Joker123456789
2022-05-31 17:47:37 +08:00
@xgfan 没有任何注解的实体类 也属于 context 吗? map 也属于吗?
Joker123456789
2022-05-31 17:51:41 +08:00
@xgfan jaskson 需要在类上 添加 @JsonIgnoreProperties(ignoreUnknown = true) 才比较保险,属不属于麻烦一点点 的范畴?

还有,不用 spring 的时候,你拿出来显摆的那些知识点,还起作用吗?
6IbA2bj5ip3tK49j
2022-05-31 18:01:28 +08:00
@Joker123456789 序列化 /反序列化的配置是可以配置在 objectMapper 上。
我只会 Spring ,别的都不会,会让你开心一点吗?
你接着(spring/jackson)+fastjson 混用吧。
Joker123456789
2022-05-31 18:03:41 +08:00
@xgfan 哦,原来还要配置一下啊,这又算不算 麻烦一点点的范畴呢? 一点点。

我们争论的 焦点 在于 “一点点”。 没想到 一句 “不用 spring 的时候” 就能刺痛你, 你也是够敏感的。

最后模仿你一下,你接着 光用 spring 吧。
6IbA2bj5ip3tK49j
2022-05-31 18:07:10 +08:00
@Joker123456789 帮你捋一捋整个来龙去脉吧。
#21 ,cp19890714 发言:`我不能理解 “用 spring ,又特意改为 fastjson” 这种操作。`
#32 ,你表示“没多少人特意改为吧? 接收参数,响应参数等 框架自带的功能 又没人动。 只是需要手工处理 json 的时候 采用 fastjson ,因为用起来方便,不需要自己写工具类。jackson 确实麻烦了一点点。 只是一点点。”

后续所有讨论,不都是用了 Spring 的基础上吗,你搁这儿跟我扯什么“不用 spring”呢?
Joker123456789
2022-05-31 18:10:35 +08:00
@xgfan 你还帮我 捋一捋???

我:jackson 确实麻烦了一点点,只是一点点。
你:根本就没

接下来就好玩了,你接着说出了两个 “确实麻烦一点点的地方” 来证明 “他没有麻烦一点点”。

1. jackson 的 objectMapper 早就注入到 spring context 里了。 我就问你,没有任何注解的实体类,map ,list 等 属于 context 吗??
2. 序列化 /反序列化的配置是可以配置在 objectMapper 上。 需要配置一下 属于 麻烦一点点的范畴吗???

你连 基本的逻辑都没捋清楚,还帮我捋一捋????
6IbA2bj5ip3tK49j
2022-05-31 18:12:52 +08:00
@Joker123456789 在已经用了 Jackson 的前提下,再引入一个 fastjson 麻烦 ,还是继续使用统一的 jackson 麻烦。
这个问题都要争论,我无话可说。
Joker123456789
2022-05-31 18:17:27 +08:00
@xgfan jackson 是 spring 依赖的,我本来就需要引入 spring ,所以 jackson 的引入对我没有增加任何工作量。

我增加的工作量仅仅是 引入了一次 fastjson ,而且 一次性引入即可, 后面 我所提到的那些麻烦的点 就全都不存在了。

你信仰 jackson ,就好好信仰吧,当你喜欢一件东西的时候,他在你眼里就是完美的。

而我, 我自己写的框架里就是 jackson ,你不信的话可以去扒源码, 我是实实在在用过的人, 也是实实在在接纳了 jackson 的人, 不像你,带着偏见,在这批评一个你根本没接纳的东西。
6IbA2bj5ip3tK49j
2022-05-31 18:23:37 +08:00
@Joker123456789 确实没啥工作量,只需要出问题之后修双份漏洞而已。
别扣帽子,什么“显摆”、“信仰”、“偏见”。
我有说 fastjson 不好吗?我只是在批评“在一个项目内引入两个 json 工具”这种行为而已。

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

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

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

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

© 2021 V2EX