PHP会话可以手动编辑吗?

6
PHP会话和cookie一样可以被编辑吗?还是它们存储在Web主机上?
4个回答

5

会话密钥存储在客户端浏览器中,而数据存储在服务器上。

当用户在服务器上发出请求时,他们的会话密钥将通过网络发送,并从服务器上的特定会话文件中检索与其密钥相关联的值,并通过 $_SESSION 访问这些值。

如果会话密钥被截获,就有可能劫持另一个用户的会话,因此您应该在会话中具有与用户计算机/网络连接相关联的特定值(例如 IP 地址)。


1
我不希望用户编辑数据。他不能编辑数据,对吧? - FinalDestiny

2

用户无法编辑会话数据,因为它们存储在服务器上。然而,用户可以启动一个新的会话并放弃之前拥有的任何会话数据。此外,您应该注意潜在的安全问题,例如会话固定。


0
通常情况下,如果主机不小心的话,它们会被存储在 Web 服务器的 /tmp 目录中。可以使用 session_save_path() 更改此设置,这是我在所有使用会话的 PHP 应用程序中都会做的事情。

0

这个操作步骤如下:

  1. 浏览器请求页面时,通过cookie或URL提交你的SID或会话ID。
  2. 服务器在session_save_path()中找到cookie文件并反序列化数组。
  3. 你可以使用PHP访问这些信息。

然而,客户端只知道会话ID,但这可能被劫持,例如通过cookie窃取者或其他跨站脚本攻击方法。如果我偷到了你的SO会话,SO就无法分辨出我是否真的是你。除非他们还检查我的IP或类似的内容。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接