php中session简单分析

百度百科定义如下:

Session:在计算机中,尤其是在网络应用中,称为“会话控制”。Session对象存储特定用户会话所需的属性及配置信息。这样,当用户在应用程序的Web页之间跳转时,存储在Session对象中的变量将不会丢失,而是在整个用户会话中一直存在下去。当用户请求来自应用程序的 Web页时,如果该用户还没有会话,则Web服务器将自动创建一个 Session对象。当会话过期或被放弃后,服务器将终止该会话。Session 对象最常见的一个用法就是存储用户的首选项。例如,如果用户指明不喜欢查看图形,就可以将该信息存储在Session对象中。

简单来说,session其实与cookie用途基本类似,都是一段数据,用来保存用户的信息。只不过session是在服务器端保存,cookie在客户端保存。

整个session其实由两个部分构成:

1.session id:存储在客户端的cookie中,在访问服务端的时候传给服务器,服务器根据session id找到该用户对应的session文件。每一个session id都是唯一的,唯一对应一个用户和客户端上的一个session文件。通常,对应关系是客户端session id:a----服务端session文件名:sess_a

2.session内容:session内容中包括一些变量的键值对,用户的身份信息等等,每一个用户的所有session内容保存在一个session文件中,这些文件存储在服务器端

这与cookie不同,cookie的内容也在客户端,容易伪造,而session内容在服务器端,更加安全

在php中:

1.客户端发包时,会有一个PHPSESSID的cookie,这就是session id

2.根据session id,当会话自动开始(没有已有的session,会先生成session文件)或者手动开始(session_start())对应session文件的内容会被反序列化并且以键值对的形式填充到$_SESSION超级全局变量中

3.$_SESSION与session文件的内容高度同步,当$_SESSION被改变,session文件内容随之改变

如果session中某些值被控制,可能会造成反序列化漏洞,但是session安全性肯定是高于cookie的

我的博客:https://yinkstudio.xyz,欢迎关注~

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值