在PHP $ _SESSION中存储数据是不安全的?

时间:2011-08-15 20:54:43

标签: php session-state php-5.3

根据我的理解,PHP进程不像应用程序服务器进程那样运行。因此,在执行脚本之后,PHP进程不保留用户特定的数据。它将它们存储在用户的cookie中。因此,无论我们存储在$_SESSSION中的是什么,都会进入cookie。这是真的?如果是,那么它们是以明文形式存储还是进行某些编码或加密?

4 个答案:

答案 0 :(得分:7)

不,进入会话cookie的唯一事情是会话的ID - 随机的字母数字字符串。所有会话数据都存储在服务器上的文件中(使用默认的会话处理程序,但您可以覆盖以随意/任何方式存储数据)。

答案 1 :(得分:6)

不,那不是真的。只有会话的ID存储在会话cookie中。会话数据全部存储在服务器端(默认情况下为纯文本格式)。

答案 2 :(得分:3)

存储在客户端计算机上的“cookie”是会话ID。 'session'本身驻留在服务器上。在会话期间请求页面时,会话ID将附加到查询字符串,以便服务器知道要为此请求加载的会话。

除非会话ID被盗(并且会话'被劫持'),否则会话是安全的。您可以通过在会话中存储创建会话的IP地址和用户代理字符串,并将这些与每个页面访问的请求IP地址和用户代理字符串进行比较来防止这种情况(某种程度上)。请记住,这些依赖于HTTP标头,可能会被欺骗。

答案 3 :(得分:0)

Cookie只是客户端中的标识符存储。这些是通过每个HTTP请求提供给服务器的。然后,服务器将cookie标识符与存储的数据进行匹配,并检索$ _SESSION的正确值。