【发布时间】:2010-07-06 18:46:35
【问题描述】:
我需要确保每个访问我的 Web 应用程序的用户只能从一台机器上执行此操作,因此 100 个用户意味着 100 台机器。最好的解决方案是什么?在首次登录时检测和存储 IP 是个好主意吗?我认为即使在会话的生命周期内,IP 也可能会发生变化,对吗?我还考虑在用户首次登录时存储 cookie。然后将这些 cookie 分配给用户,就像我已经对密码和用户名所做的一样,并且每次访问应用程序时都会检查该 cookie 的存在。
请告诉我您认为最好的解决方案。如果这很重要,我的后端是 php/mysql。
编辑:我需要澄清...这是对正常会话管理的补充。我需要限制用户只能从一台特定的机器登录到 Web 应用程序。因此,如果用户最初在工作时从他的计算机登录并且我存储了它的 ip/cookie/等,那么客户端注销(甚至不注销),回家并尝试登录将无法做到这一点。我同意它的可怕想法,但客户坚持:)
【问题讨论】:
-
添加了 PHP 和 MySQL 标签。
-
IP 不是一个好的解决方案 - 路由器后面可以有多台计算机,因此它们在访问您的站点时都具有相同的 IP。
-
为什么要建立这个限制?我使用几台机器访问多个站点,如果您不允许我也从其他计算机访问您的站点,我会非常生气。也许相关:Creating a PHP web app to allow users to vote on submissions - How can I minimize abuse?
-
@Marcel Korpel:我记得不得不处理用户编辑同一个页面,但从两个不同的浏览器窗口...
标签: php mysql security login restrict