【问题标题】:Maintaining session in php without cookies and without using URL在没有cookie和不使用URL的情况下在php中维护会话
【发布时间】:2012-12-15 07:15:08
【问题描述】:

我有一个问题,当一个人登录时,他应该被限制为只能使用一个 IP 地址。他应该不能同时通过不同的机器登录,所以有什么方法可以在不使用会话 cookie 和在 URL 中不使用会话 ID 的情况下保持会话?

【问题讨论】:

  • 你试过使用localstorage还是sessionstorage?

标签: php session


【解决方案1】:

是的,通过在数据库中写入会话。除了您编写的常规会话数据(id 和用户数据)和 user_ip。因此,当会话处于活动状态时,您可以限制来自另一个 ip/机器甚至浏览器的用户访问(如果您将会话唯一性设置为 IP 和浏览器标头 - 用户 agnet)

请查看下面的链接,了解如何扩展会话处理程序和保存/读取数据库(因此不使用 cookie)

set session in database in php

还有这个

PHP user authentication using database and ip address?

【讨论】:

  • 是的,我发现 IP 地址有问题。有没有更安全完善的机制?
  • @user1844090 这取决于您的应用程序的性质。如果您希望用户在任何给定时间只能从一个地方登录,那么您实际上并不需要 IP。您只需终止驻留在平台/位置中的先前会话(基本上,每当用户登录时都会创建一个新会话,而先前的会话总是在登录时被销毁。因此您最终用户只能登录一次)
【解决方案2】:

您可以创建一个数据库表,在用户登录时使用会话 ID 进行更新,并在用户注销时将其删除。登录时,您可以检查数据库以确保数据库中没有活动会话。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-01-12
    • 1970-01-01
    • 2010-09-20
    • 1970-01-01
    • 2011-03-03
    • 1970-01-01
    • 2017-07-23
    • 2015-11-08
    相关资源
    最近更新 更多