我需要确保访问我的 Web 应用程序的每个用户都只能从一台机器上执行此操作,因此 100 个用户就意味着 100 台机器。什么是最好的解决方案?在首次登录时检测和存储 IP 是个好主意吗?我认为即使在 session 的生命周期内 IP 也可能会改变,对吗?我还考虑在用户首次登录时存储 cookie。然后将这些 cookie 分配给用户,就像我已经使用密码和用户名所做的那样,并且每次访问应用程序时检查是否存在该 cookie。
请告诉我您认为什么是最佳解决方案。如果重要的话,我的后端是 php/mysql。
编辑:我需要澄清一下...这是对正常 session 管理的补充。我需要限制用户只能从一台特定机器登录到 Web 应用程序。因此,如果用户最初是在工作时从他的计算机登录的,而我存储了它的 ip/cookie/等,那么客户端注销(甚至不注销)、回家并尝试登录将无法做到这一点。我同意这个可怕的想法,但客户坚持 :)
最佳答案
对于移动客户端或在有线和无线网络之间切换的客户端,IP 地址可能会发生变化。您最好的选择可能是在每个客户端首次连接时向其提供一个随机生成的 UID(如果它还没有 cookie)。然后您可以检查是否没有使用两个不同的 UID 连接相同的用户名。
诀窍是您需要确保将此 UID 超时,这样如果用户转到另一台计算机,他们就不会被锁定。也许对 UID 进行一次更改是可以的,但是他们不能返回到已经使用过的 UID 吗?
关于php - 如何将 Web 应用程序的访问权限限制在一台机器上?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3189239/