有没有一种方法可以检测一个会话是否被多个人访问?

时间:2018-07-12 22:30:22

标签: php security session

鉴于会话固定/劫持的情况,如何检测多方是否同时访问同一会话?

我不想使用$_SERVER['REMOTE_ADDR']

1 个答案:

答案 0 :(得分:1)

简单的答案是,您不能这样做,因为HTTP协议是无状态协议,这意味着请求完成后服务器对用户一无所知。

但是您可以尝试一些技巧,以使其更难以欺骗来自未授权用户的会话,服务器端的常用技术是将$ _SERVER ['HTTP_USER_AGENT']的哈希存储在会话变量中并进行比较与您在每次请求时得到的信息一样,如果信息发生更改,则会终止会话。

不要使用$ _SERVER ['REMOTE_ADDR']或其他方法来猜测客户端IP,因为它中断了移动用户的会话,因为它们的IP总是在变化。