删除cookie中存储的PHPSESSID
删除PHPSESSID的值后,空密码即可登录了
这里有个误区,刚开始的我对session的知识点了解很少,我甚至觉得直接把PHPSESSID的值当作密码的值就满足$password==$_SESSION['password']了,然后不行
这里我才知道:
- $_SESSION 是 PHP 中的一个超全局数组变量,用于存储和访问会话(session)数据。
- $_SESSION['password'] 表示从会话数据中获取名为 'password' 的值。
其中$_SESSION 是 PHP 中的一个超全局数组变量,用于存储和访问会话(session)数据。会话数据是在服务器上存储的,通常以文件或数据库的形式保存。
在使用 $_SESSION 之前,需要先调用 session_start() 函数,以启动会话并初始化 $_SESSION 数组。这个函数会根据需要创建或恢复会话,并将会话数据加载到 $_SESSION 数组中。
会话数据可以在不同的页面和请求之间进行共享,因此可以用于存储用户登录信息、用户偏好设定、购物车内容等需要在多个页面或请求之间保持一致的数据。
在代码中,通过将特定数据赋值给 $_SESSION 数组的元素,可以将这些数据存储在会话中。然后,通过读取 $_SESSION 数组的相应元素,可以在不同的页面或请求中访问和使用这些数据。
例如,在登录过程中,可以将用户的用户名或用户 ID 存储在 $_SESSION['username'] 或 $_SESSION['user_id'] 中。在其他页面中,可以通过访问 $_SESSION 数组来获取和使用这些值。
需要注意的是,要使用 $_SESSION 数组,需要确保在每个页面的开始处调用了 session_start() 函数,以便初始化会话并加载会话数据。
而浏览器中存储名为PHPSESSID的Cookie是用来跟踪php会话的标识符,在使用php的$_SEESION变量来管理会话是,php回自动为每一个访问网址的用户生成一个唯一的PHPSESSID值,并将其存储在Cookie中
当用户访问php网址时,服务器会将生成的PHPSESSID值发送给用户的浏览器,并保存在名为PHPSESSID的cookie中,浏览器在随后的请求中会自动将这个cookie发送回服务器,这样,服务器可以通过这个唯一的标识符识别用户,并获取与用户关联的会话数据。
PHPSESSID cookie的值是随机生成的,并且大部分情况下是基于用户的会话信息和一些其他参数生成的哈希值,这样做是为了确保PHPSESSID的唯一性和安全性,以防会话劫持和其他安全漏洞。
所以这样,PHPSESSID并不是真正存储的会话的值,真正的会话数据是存储在服务器上的,PHPSESSID只是用户的一个标识,删掉这个标识符,会话跟踪将受到影响,当服务器接受到没有PHPSESSID cookie的请求时,它将无法识别用户的会话,并可能创建一个新的会话标识符。因此,我们通过删除PHPSESSID的值来达到空密码登录的目的。
删除PHPSESSID可能会发生:
- 丢失会话数据,例如用户登录信息,登录状态,等
- 会话重置:服务器可能会创建一个新的PHPSESSID值,并分配一个空的会话给用户,着将导致用户的会话状态被重置
- 被登出,导致用户被强制退出登录,需要重新进行身份验证。
虽然这些知识很基础,而且我有这种疑问也是我基础不牢,我是小小白一枚,如果有人跟我一样疑惑的,希望能帮到你!