JAVA反序列化漏洞防护组件使用

详情

   通过给默认的java.io.ObjectInputStream添加Class名称黑名单,防止java反序列化漏洞,程序默认自带的类黑名单(JAVA反序列化黑名单类)包含目前已知的所有可以用于构造反序列化调用方法链的类名称。

  

  引入依赖


    com.jd.security.codesec
    ajdv
    0.1

  

  使用方法

  默认情况下,在进行Java反序列化操作时,使用如下代码,就可以防止反序列化安全漏洞:

ObjectInputStream ois = new SafeObjectInputStream(new FileInputStream("/tmp/xxx"));
Object o = ois.readObject();

  如果需要定制黑名单可以通过如下两种方式

  方法一:自己提供类黑名单,这方式将完全替换程序默认提供的类黑名单

Set classBlackList = new HashSet();
classBlackList.add("com.xxx.xxx.AAA");
classBlackList.add("com.xxx.xxx.BBB");
SafeObjectInputStream ois = new SafeObjectInputStream(new FileInputStream("/tmp/xxx"),classBlackList );
Object o = ois.readObject();

  方法二:添加额外的黑名单,这种方式不会替换程序自带的黑名单,而是在原有黑名单基础之上添加额外的黑名单类

SafeObjectInputStream ois = new SafeObjectInputStream(new FileInputStream("/tmp/xxx") );
ois.addBlackList("com.xxx.xxx.AAA");
ois.addBlackList("com.xxx.xxx.BBB");
Object o = ois.readObject();

  

你可能感兴趣的:(【Java学习】)