jetcache 关于系统内置的 fastjson 的安全问题的想法!?

esyap4oy  于 2022-11-19  发布在  其他
关注(0)|答案(3)|浏览(153)

看了下 pom ,我们这个项目内置使用的是 fastjson
这 两年,fastjson安全漏洞频发,当然 jackson 也是有的,不过 gson 却是没有被爆出过。
所以是否考虑抽象 json 处理框架这一层,让用户来选择到底选择采取哪一款 json 框架?

ztmd8pv5

ztmd8pv51#

应该可以写一个的其他框架的 Json 转换,类似下面这个

public class FastjsonKeyConvertor implements Function<Object, Object> {

    public static final FastjsonKeyConvertor INSTANCE = new FastjsonKeyConvertor();

    public Object apply(Object originalKey) {
        if (originalKey == null) {
            return null;
        }
        if (originalKey instanceof String) {
            return originalKey;
        }
        return JSON.toJSONString(originalKey);
    }
}

然后替换吧!?

dwthyt8l

dwthyt8l2#

  1. 从pom依赖中剥离fastjson依赖
  2. 默认不依赖任何外部json类库
  3. 默认NONE keyConvertor
  4. 可以开启一个新的子项目, 提供各种Converter(fastjson,jackson,gson等)
wvyml7n5

wvyml7n53#

可以自行替换的,可以在全局设置里面指定默认的key convertor,实现起来也很简单。

但如果直接更换默认的key生成策略会造成不兼容(新版本上线期间生成的key可能和以前不一样)。

相关问题