确保每个用户从一台计算机访问Web应用程序

时间:2010-11-08 07:41:14

标签: php

我为客户开发了一个PHP的Web应用程序。客户现在以每个用户为基础向其他公司出租系统。

有没有办法阻止二级公司使用单一登录并同时将其提供给20个人使用?我知道可以获取正在登录的客户端计算机的IP地址,但这显然不是非常可靠的方法。答案可能在于结合使用cookie和跟踪数据库中的内容,但我的大脑在如何实施策略方面有点陷入困境。

4 个答案:

答案 0 :(得分:6)

当用户登录并将其存储在数据库中时,创建唯一的会话ID。在会话身份验证代码(在所有页面访问时运行)中添加一些内容,检查用户的会话ID是否等于数据库中的会话ID,如果没有,请将其注销。然后,您的网络应用程序一次只能由一个用户访问。

但是,说实话,你不能向客户提出这个问题吗?

答案 1 :(得分:2)

无法判断登录是否在20个人之间共享。您可以通过阻止通过会话cookie同时使用来限制访问。

最重要的是,使用已发布的条款及条件文件保护自己。违反该协议 - 撤销任何常设协议/合同。如果你能提供他们违反的证据(日志),请起诉他们。

答案 2 :(得分:2)

确保将一个用户绑定到一个会话。这样,如果某人使用与另一个会话相同的登录,您可以生成警告屏幕。然后,您可以让用户选择关闭其他会话。

通过这种方式,您可以确保两个用户不同时使用该系统。它有点像您在计算机上安装的软件程序:多个用户可以使用它,但一次只能使用一个。这可能很好。

如果您不想这样,您应该尝试将登录更牢固地绑定到用户:确保他使用个人电子邮件地址登录,并通过电子邮件收到通知(如果适用)。还让用户设置个人配置。通过这种方式,您可以为用户创建额外值以拥有自己的帐户。

答案 3 :(得分:0)

如果您有登录,您有身份验证,并且您在会话中写入任何用户ID,请确保只创建了具有此ID的一个会话,如果该会话已存在则抛出错误消息。

你遇到的唯一问题是用户没有正确注销,而不是按下浏览器上的x按钮然后他将无法登录直到会话未过期。