首页/安全/漏洞与攻击面速查/反序列化防护清单
Web 漏洞原理与防护55 条

反序列化防护清单

反序列化防护分四层:替换协议(JSON 优先)、反序列化类型白名单、运行期类过滤与边界加固;改造后要回归对象兼容性与异常路径。

漏洞与攻击面速查安全更新于 2026-10-12

分语言配置示例

分语言配置示例
PHP:unserialize($data, ['allowed_classes' => ['SafeClass']])
Java:ObjectInputFilter 限制可反序列化类(JDK 9+)
Python:接口层禁用 pickle,只走 json;确需时对数据做 HMAC 签名校验
通用:入口对序列化数据签名校验,防止被篡改

Java ObjectInputFilter 示例

Java ObjectInputFilter 示例
ObjectInputFilter filter = ObjectInputFilter.Config.createFilter("com.example.safe.*;!*");
ObjectInputStream ois = new ObjectInputStream(input);
ois.setObjectInputFilter(filter);
旧系统短期无法改造时,可用 WAF 规则与类加载层黑名单缓解,但要登记为技术债并排期整改。

易错点

  • 只加 WAF 规则不改代码:序列化数据形态多变,规则覆盖有限,审计时仍会要求整改

数据来源与参考

  • OWASP Deserialization Cheat Sheet
  • Oracle ObjectInputFilter 文档
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌