fastjson怎么配置白名单
时间: 2023-11-05 17:04:19 浏览: 70
fastjson 的白名单配置可以通过 ParserConfig 类的 addAccept 方法来实现。具体步骤如下:
1. 创建一个 ParserConfig 对象
```java
ParserConfig config = new ParserConfig();
```
2. 调用 addAccept 方法添加白名单
```java
config.addAccept("com.example.model.");
```
这个配置表示只允许反序列化 com.example.model. 包下的类,其他包下的类会被禁止反序列化。
3. 在反序列化时使用自定义的 ParserConfig 对象
```java
String jsonStr = "{\"name\":\"张三\",\"age\":18}";
Model model = JSON.parseObject(jsonStr, Model.class, config);
```
在这个例子中,我们使用了自定义的 ParserConfig 对象 config,这样就可以使用我们自己的白名单配置来限制 fastjson 的反序列化范围了。
需要注意的是,如果你在使用 fastjson 反序列化时遇到了 autoType is not support 问题,那么请先了解清楚这个问题的原因,再决定是否需要配置白名单。只有在确实需要使用 autoType 特性时,才需要配置白名单来限制反序列化范围。
相关问题
fastjson1.2.83版本解决白名单了吗
根据我的了解和最新的信息,fastjson 1.2.83版本确实解决了一些白名单问题。具体而言,fastjson在1.2.83版本中引入了新的白名单特性,可以让用户指定哪些类可以被反序列化。这个特性可以帮助用户防止一些安全威胁。但是,需要注意的是,如果你使用fastjson前面的某些版本,你需要升级到1.2.83版本才能受益于这个特性。如果你有更多的问题,请继续提问。
fastjson 2.0.0版本 反序列化配置
fastjson 2.0.0版本提供了多种反序列化配置,可以通过配置来控制反序列化的行为,以增强安全性和灵活性。以下是常见的反序列化配置:
1. AutoType:开启该配置后,fastjson将支持反序列化任何Java类,包括未知的、不在白名单中的类。这个配置存在安全隐患,因为攻击者可以通过构造恶意的JSON字符串来执行任意代码。因此,建议仅在必要时才开启该配置,并通过白名单过滤掉非法类。
2. ParserConfig:该配置用于管理反序列化时的解析器配置,包括白名单、黑名单、自定义反序列化器等。通过ParserConfig可以实现更精细的反序列化控制。
3. Feature:该配置用于开启或关闭fastjson的一些特性,如自动类型匹配、允许注释、允许单引号等。通过Feature可以灵活地控制反序列化的行为。
4. ASM:该配置用于开启或关闭fastjson的ASM字节码增强功能,以提高反序列化性能。默认情况下,fastjson会尝试使用ASM来优化反序列化代码,但在某些环境下可能会造成兼容性问题。
5. SerializeConfig:该配置用于序列化时的配置管理,包括白名单、黑名单、自定义序列化器等。通过SerializeConfig可以实现更精细的序列化控制。
这些配置可以通过调用JSON类的静态方法来设置,例如:
```
JSON.DEFAULT_PARSER_FEATURE |= Feature.AutoCloseSource.getMask();
JSON.DEFAULT_PARSER_FEATURE &= ~Feature.UseBigDecimal.getMask();
```
注意,反序列化配置应该根据具体情况进行选择和设置,以确保安全和性能。建议仔细阅读fastjson的官方文档,并参考相关的安全规范和最佳实践。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)