Skip to content
This repository has been archived by the owner on Oct 23, 2024. It is now read-only.

fastjson_safemode

温绍锦 edited this page Jun 4, 2020 · 9 revisions

打开SafeMode功能

在1.2.68之后的版本,在1.2.68版本中,fastjson增加了safeMode的支持。safeMode打开后,完全禁用autoType。所有的安全修复版本sec10也支持SafeMode配置。

有三种方式配置SafeMode,如下:

1. 在代码中配置

ParserConfig.getGlobalInstance().setSafeMode(true); 

2. 加上JVM启动参数

    -Dfastjson.parser.safeMode=true 

如果有多个包名前缀,用逗号隔开

3. 通过fastjson.properties文件配置。

通过类路径的fastjson.properties文件来配置,配置方式如下:

fastjson.parser.safeMode=true

4. safeMode场景如何做autoType

在1.2.68之后的版本,提供了AutoTypeCheckHandler扩展,可以自定义类接管autoType, 通过ParserConfig#addAutoTypeCheckHandler方法注册。

// com.alibaba.fastjson.parser.ParserConfig.AutoTypeCheckHandler
    /**
     * @since 1.2.68
     */
    public interface AutoTypeCheckHandler {
        Class<?> handler(String typeName, Class<?> expectClass, int features);
    }

    // com.alibaba.fastjson.parser.ParserConfig#addAutoTypeCheckHandler
Clone this wiki locally