没有通过SID的会话 - 它可靠吗?

时间:2011-11-22 09:42:27

标签: php session

我正在开发一个项目,在php会话中保留一些用户信息(非敏感信息)。由于这是我第一次使用会话,我从不打扰传递任何会话ID,但它仍然有效 - 是吗?我找不到任何相关的信息。

我正在使用$_SESSION变量中的某些部分信息来导航和影响某些网站的行为,有时这对页面与用户进行交互至关重要。意思是没有当前会话的正确信息,导航将被破坏。

那么,我可以依赖Sessions的存在吗? 我可以依靠服务器自动选择正确的会话而不传递SID吗?

我只在一台服务器上工作,我不需要会话可恢复(意味着当用户离开应用程序时,会话可能会被破坏)。

2 个答案:

答案 0 :(得分:2)

是的,你可以依靠让服务器为你挑选正确的会话。我在我10年的PHP编码中没有经历过错误的会话。

但是,如果您选择将sessionid传递到下一页,请清除风险。如果您有任何类型的私人数据,会话劫持是一项非常严肃的业务。

答案 1 :(得分:2)

如果找不到相关信息,可能会跳过最明显的参考:官方PHP手册。它就在Introduction of the Sessions chapter

  

PHP中的会话支持包含一种保留某些数据的方法   跨后续访问。这使您可以构建更多自定义   应用程序并增加您的网站的吸引力。

     

访问您网站的访问者被分配了一个唯一的ID,即   所谓的会话ID。 这可以存储在用户的cookie中   在URL中传播或传播

如果你的问题是饼干是否可靠用于此目的,事实上它现在是事实上的标准。您很难找到仍然在URL中传输会话ID的PHP驱动的站点。原因是它是一个有问题的技术:它很容易泄露您的会话ID。如果您复制URL并将链接发送给朋友或在论坛中发布,那么任何陌生人都可以轻松访问您的私人数据,即使是在他们访问网站时无意中(您不需要恶意的人)在会话到期之前,该网站没有实施进一步的验证(这是通常的情况)。