会话和cookie组合的确切方式,在请求发送到服务器时识别正确的用户

时间:2014-02-27 12:37:53

标签: php session cookies

嗨我知道会话在服务器端,当用户登录到我们创建会话并在该会话中存储用户数据的站点时,该会话ID是唯一的。如果多个用户登录到具有唯一会话ID的相同服务器会话,则会创建。

cookie是服务器嵌入用户计算机的小文件。每次同一台计算机使用浏览器请求页面时。

  

在浏览器Cookie中,我看到了名为SIDSSID的变量   那些是指服务器会话ID ???

  

从cookie的哪些参数,会话识别这是   正确的用户。

**当我向服务器发送请求时

是cookie中与服务器会话ID匹配的那些ID吗?

  

我的问题是服务器如何知道这是正确的用户?

我有会话和cookie的想法,但有不明确的组合。

实际上我已经搜索了很长时间了,我问过我的朋友,他们似乎也没有清楚了解这个

请事先解释一下情景。

4 个答案:

答案 0 :(得分:2)

这就是重点,服务器无法知道这一点。

更详细:

服务器生成一个唯一的id,然后将id发送到客户端,客户端将此id存储在他的cookie中,对于客户端发送其id的每个请求,服务器都知道他必须采取哪个会话对于这个用户,但问题是,如果其他人知道id,因为他正在监听网络流量,他可以使用会话ID,服务器认为,它与以前的客户端相同,他将采取与以前相同的会话。这称为Session hijacking

阻止此,您必须存储每个会话密钥的IP地址并检查它们是否匹配但事件是不是100%确定因为如果客户端位于 NAT安全网络并且攻击者也在同一网络中,则它们将具有相同的服务器IP地址,并且服务器无法区分攻击者和客户

Follow this tutorial to make your sessions safer.

答案 1 :(得分:1)

Cookie与HTTP标头中的每个HTTP请求一起发送。存储在会话cookie中的会话ID确实用于将发出请求的用户与服务器上的会话数据进行匹配。

当在非安全连接上使用时,这会带来巨大的安全漏洞,因为任何拦截流量的人都可以复制此会话cookie并使用它来发出自己的请求。这就是为什么越来越多的网站(Facebook,谷歌......)是“仅限https”的网站。如果情况并非如此,那么在大多数Wi-Fi热点上获取用户数据将非常容易。

答案 2 :(得分:1)

在浏览器和服务器之间启动会话时,会生成会话ID。此会话ID将发送到Cookie中的浏览器。可以配置此cookie名称,但默认情况下它是PHPSESSID。

默认情况下,php将会话数据存储在服务器文件系统中名为“sess_SESSION_ID”的文件中(SESSIONI_ID与Cookie中的值相同)。使用$ _SESSION ['some_key'] = $ some_val写入会话的所有数据;存储在此文件中。

因此,下次当您向服务器发送请求时,您的浏览器将在标头中发送Cookie。通过使用此Cookie数据,php确定是否存在活动会话。使用此Cookie,服务器知道要读取哪个文件和哪些数据。

答案 3 :(得分:0)

Cookie存储在客户端..并且可以设置生命周期 每次用户访问您的站点时,都会生成一个新的会话ID值。 SID只是在php.ini中定义的变量,您可以更改它们。 所以cookie和会话ID是两个不同的东西

看看这会对你有所帮助 PHP cookies and sessions security for user accounts