yink's studio

yink's world
Stay hungry, stay foolish.
  1. 首页
  2. 未分类
  3. 正文

php中session简单分析

2022年1月5日 219点热度 0人点赞 0条评论

百度百科定义如下:

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的

本作品采用 知识共享署名 4.0 国际许可协议 进行许可
标签: 暂无
最后更新:2022年1月5日

yink

这个人很懒,什么都没留下

点赞
< 上一篇
下一篇 >

文章评论

取消回复

COPYRIGHT © 2021 101.34.164.187. ALL RIGHTS RESERVED.

THEME KRATOS MADE BY VTROIS