0%

JEP 290 初识

JEP 290是 oracle提供已一套JAVA反序列化机制,其并不是一种必须被强制执行的策略,而是需要程序员或者运维人员进行开发与启用。关于该机制的优缺点借用老外的一篇文章

https://dzone.com/articles/a-first-look-into-javas-new-serialization-filterin

中文版可以参考

https://blog.csdn.net/caiqiiqi/article/details/104270776

该机制提供了三种防御策略,分别是全局过滤器、自定义过滤器以及内置过滤器

全局过滤器

该过滤器可以通过三种方法进行启用,

  1. 启动应用时通过指定参数-Djdk.serialFilter=<白名单类1>;<白名单类2>;!<黑名单类>
  2. 设置环境变量$JAVA_HOME/jre/lib/security/java.security
  3. 启动时指定策略文件-Djava.security.properties=<黑白名单配置文件名>
    关于java.security文件提供了主要提供了两种策略,一种是限制类调用的深度与数量,二是通过黑白名单进行限制
    在这里插入图片描述

自定义过滤器

程序员可在编码是使用ObjectInputStreamFilter指定反序列化黑白名单
ObjectInputFilter filesOnlyFilter = ObjectInputFilter.Config.createFilter("de.mogwailabs.Example;!*");

内置过滤器

其实第一张图里面就是一些内置过滤器,当然截图不全,如果要启动去掉注释即可

Buy me a coffee.

欢迎关注我的其它发布渠道