Fastjson 1.2.60以下版本 爆出重大漏洞,苦逼升级整个项目后,仔细分析具体原因,看看哪里的锅

突然有一天,老大突然在群里说,把fastjson 包升级到1.2.60,我一脸蒙蔽,听说有重大安全漏洞,就赶紧升级完提交测试了。

今天刚好有空,赶紧上全球最大的程序员同性交友网站扒拉扒拉看看具体bug,做到心里有点B数。

话不多说,上同性交友网站截图:

撸个代码试一下,实践是检验真理的唯一标准,也是找出bug的快速方法:

public class FastJsonTest {

    public static void main(String[] args) {
        String str = "{\"g\":\"\\x";
        Object obj = JSON.parse(str);
        System.out.println(str);
    }

}

写完,运行,然后报错,一气呵成。

看更新记录,这个解决方案直接加一层判断,贼6,就去老版本这里打个断点吧:

开启找你妹(debug)模式 :

 看,他来了

‘\u001A’ 表示已经读完了也就是EOF,然后看 x1  已经是结束,x2 再次为此,继续debug,

发现执行了putChar方法,执行完sp的值+1

然后继续执行,又返回scanString方法,又开始了一遍

可怕的事情来了。。。竟然进入了死循环,sp增加到sbuf.length(512)的时候,会进入if分支,开始扩容。

然后OOM。

咦,真吓人,赶紧升级1.2.60吧。

​ ​

【坚持】越努力越幸运!

博客搭了删,删了搭,反复后,却什么也没落下,这次,铁了心要告诉自己,再忙,也要挤一挤时间,记一记文章。

如果一个人老关注自己不幸,那么即便给他金山银山他都觉得不幸运。

而一个人老是关注自己的幸运,并且感恩身边的一切,那么他会感觉到自己很幸运。

这一点是决定幸福的关键点。

当然我们可以通过做其他事情来增加我们的幸运,就比如积极去挑战困难,迎难而上,让自己每天都在做舒适区之外的事情。还可以培养一些习惯,比如爱笑,不抱怨,多走出去的习惯,这些都是一种磁场,爱笑的人一般运气都不差,不抱怨的人始终把思维放在解决问题上去或把焦点放在好的事情上去。

多走出去,多看看外面的世界,结交外面的人,朋友多了路好走。等等这些都可以让自己的命运变得更好。最后从内心层面来说,就是要相信自己,不断发掘自己的潜能,积极去感召幸运。这核心就是中国人说的:命为天定,运为人改