众所周知,客户端使用Cookies来保存用户数据的,服务端用Session来保存用户数据~ Cookies的设计应该比较简单,只要根据所在域来保存和读去用户数据,所以Cookies的安全性不高,不建议使用Cookies保存用户重要数据,即使进行了加密~ 服务端用Session保存用户数据,但服务器怎么识别客户端的呢? 当调用session_start()之后,服务器会在客户端保存一个唯一标示PHPSESSID: 服务器利用PHPSESSID来识别客户端~
如果获取到用户的PHPSESSID,是否可以伪造登陆状态呢? 下面来做一个实验: 1.用Chrome打开一个网站并用yearnfar这个账号登陆:
2.用firefox打开这个网站并用huaping这个账号登陆:
3.复制chrome下面的PHPSESSID,将它替换firefox下面的PHPSESSID:
4.保存后刷新界面,发现登陆的账号变成了yearnfar这个账号... 由此可以下一个结论,获得PHPSESSID可以伪造用户的登陆状态。。。 但是我用OSC来做实验就同时伪造了_reg_key_和oscid却没有达到预期~ 什么原因呢? 应该是oscid里面包含了浏览器的信息~ 那我写一个脚本试试~
登陆成功!!!猜测正确~ (责任编辑:IT) |