------已搬运-------关于GET方式传入PHP反序列化的字符串时private和protected的注意点

本文探讨了在PHP中通过GET方式传递反序列化字符串时,处理private和protected属性的注意事项。作者对比了PHP 5.4.45和7.1.13版本的不同行为,发现空格通常是表示不可见字符的最佳选择,而在某些情况下,%00或%20也可用于表示。总结建议,在不需要base64编码时,使用空格代替不可见字符。
摘要由CSDN通过智能技术生成


如果大佬们没时间看分析的化,直接看那个 总结一下 就好。

还是直接看这个吧。。。 得了,别重磅了,看这个结论把:。。。吐了,,,

一、2021.2.16补充:当时没有深入研究,这次研究一下:

关于那个private。protected的不可见字符问题,序列化好说。那么反序列化呢。你反序列化的时候,提交的字符串,怎么表示不可见字符呢

这着实是一个问题啊。。。

我总共试了两个版本的PHP一个是5.4.45另一个是7.1.13

这里先只讨论 私有属性 private这个东西:
1. PHP7.1.13情况下的:

先说一个有趣的事件:

var_dump(serialize($a));//string(48) "O:6:"people":1:{s:12:"\000people\000name";s:4:"adam";}"
echo (serialize($a));//O:6:"people":1:{s:12:" people name";s:4:"adam";}

同样的序列化,echo和var_dump出来的竟然对不可见字符的表示样式不一样。是不是大吃一惊啊 ,,,,我测试的时候快绝望了都。。

不过好消息是,没什么影响,大家做的时候,用echo的那个就好。不用管

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值