java代码审计之反序列化(权限问题)

概述

Serializable 的类的固有序列化方法包括 readObject, writeObject。
Serializable 的类的固有序列化方法,还包括 readResolve, writeReplace。
它们是为了单例 (singleton) 类而专门设计的。
根据权限最小化原则,一般情况下这些方法必须被声明为 private void。否则如果 Serializable的类开放 writeObject 函数为 public 的话,给非受信调用者过高权限,潜在有风险。有些情况下,比如 Serializable 的类是 Extendable, 被子类继承了,为了确保子类也能访问方法,那么这些方法必须被声明为 protected,而不是 private。

审计策略

人工搜索文本

public * writeObject
public * readObject
public * readResolve
public * writeReplace

修复方案
视情况根据上下文而定,变成私有类或者保护类,比如修改为

private void writeObject
private void readObject
protected Object readResolve
protected Object writeReplace


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值