我有一个具有登录/注销功能的网站。我如何确保,同样是在一种稳定的技术中,用户将无法从两台不同的计算机登录到同一个帐户?
Javascript不能用于此,因为很容易禁用它
例如,.NET有一个Session_End函数,该函数在用户中止与服务器的连接时执行。如何用PHP实现这一点?
谢谢,Guy
注意:当在第二台计算机上登录时,此技术将有效地注销第一台计算机上的帐户
当用户登录时,将用户的会话id记录到数据库或等效数据库中。在每个页面请求中,确保用户的会话id与存储在其帐户存储区中的会话id相匹配。来自会话id不匹配的已登录帐户的请求应被拒绝,用户应注销。
这取决于您想要深入的程度。最常见的:
- 登录时创建一个唯一的会话id cookie并将其保存在数据库中
- 所有网页都会检查会话cookie以确保其有效
- 如果会话无效,则会将用户重定向到登录页面
- 当另一个用户尝试登录时,它会覆盖上一个会话
- 这基本上将第一个用户踢出
大公司也会将IP地址存储在数据库中(这样会话cookie就不会被盗)