PHP:如何在会话中保护密钥,值对

时间:2016-01-02 17:41:29

标签: php session

我很想知道会话中密钥和值的加密方式 - 它使用的标准。会话是否可以解密?如果没有,我们可以轻松地从中提取值吗?

  

PHP技能:中级。

例如:

设置会话变量:

$_SESSION["greetings"] = "happyNewYear";
$_SESSION["year"] = "2016";

提取:

print_r($_SESSION);

我想知道在设置变量和保存变量之间发生了什么。

2 个答案:

答案 0 :(得分:2)

PHP将会话数据存储在服务器上的文件中(可以自定义存储方法,但这是默认设置)。每个会话都将其数据存储在以会话ID命名的不同文件中。会话ID通常是随机生成的字符串。该文件的内容是serialize($_SESSION)

的结果

然后,会话ID将作为cookie发送到客户端,名为PHPSESSID。当客户端发回这个cookie时,PHP会将相应文件中的值加载到$_SESSION

数据未加密,其安全性主要取决于无法猜测长会话ID cookie。有关针对此攻击的更多讨论,请参阅PHP Session Fixation / Hijacking

答案 1 :(得分:0)

默认情况下,$ _SESSION会在服务器文件系统的纯文本文件中保存serialized