反序列化为什么要找公开方法

反序列化为什么要找公开方法,第1张

序列化为什么要找公开方法:因为反序列化:把字节序列恢复为对象的过程称为对象的反序列化。

序列化就是把对象转换成字节流,便于保存在内存、文件、数据库中;反序列化即逆过程,由字节流还原成对象。Java中的ObjectOutputStream类的writeObject()方法可以实现序列化,类ObjectInputStream类的readObject()方法用于反序列化。下面是将字符串对象先进行序列化,存储到本地文件,然后再通过反序列化进行恢复

如果Java应用对用户输入,即不可信数据做了反序列化处理,那么攻击者可以通过构造恶意输入,让反序列化产生非预期的对象,非预期的对象在产生过程中就有可能带来任意代码执行

序列化就是把一个对象保存到一个文件或数据库字段中去,反序列化就是在适当的时候把这个文件再转化成原来的对象使用。

我想最主要的作用有:

1、在进程下次启动时读取上次保存的对象的信息

2、在不同的AppDomain或进程之间传递数据

3、在分布式应用系统中传递数据

$str = 'a:2:{i:0b:0s:8:"bankinfo"a:1:{i:1a:2{s:6:"bankid"i:1s:7:"cardnum"s:4:"adda"}}}'

$res = unserialize($str)

echo $res['bankinfo'][1]['cardnum']

这个数组整个结构是

Array ( 

    [0] => false

    [bankinfo] => Array (

         [1] => Array ( 

             [bankid] => 1

             [cardnum] => adda 

         )

     )

)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6789545.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-28
下一篇 2023-03-28

发表评论

登录后才能评论

评论列表(0条)

保存