【问题标题】:how to prevent user from using multiple browsers at a time如何防止用户一次使用多个浏览器
【发布时间】:2013-12-16 13:18:05
【问题描述】:

我的网站中有登录系统,用户必须为使用我的网站付费。由于他们必须付费,恐怕一个用户可能会与其他用户共享他的用户名和密码。所以我必须将我的登录系统设置为没有用户一次可以使用多个浏览器。但他们可以不时更换浏览器(不是在同一时间,而是一天中的不同时段)。我怎样才能通过php实现呢?有什么想法吗?

【问题讨论】:

    标签: php browser login


    【解决方案1】:

    使用辅助 javascript 预加载器收集非个人浏览器信息并根据登录时间/帐户/IP/浏览器信息生成哈希。

    在服务器端检查每个用户帐户一次不超过一个活动的哈希值,如果发生这种情况,则强制注销以前的哈希值。使用另一个客户端 javascript 定期 ping 服务器并检查哈希唯一性并无缝重新登录合法用户以获取“动态 IP”用例。

    因此,如果用户与另一个用户共享他的帐户,他们将不断地“踢”对方离开网站,直到厌烦到为第二个帐户付费。

    【讨论】:

      【解决方案2】:

      您可以在他们登录时从他们的会话 ID 生成令牌/哈希。将此令牌添加为 cookie 值,然后将其存储在数据库中。如果用户已登录并且他们的 cookie 值与存储在数据库中的值不匹配,那么他们可能在其他地方登录。

      【讨论】:

      • 但我希望一个用户可以在不同的时间段从不同的浏览器登录,而不是同时登录。例如,他可能早上从办公室登录,晚上从家里登录。如果我使用你的解决方案,那么他早上从办公室登录后,晚上将无法从家里登录。如何解决?
      • 但他不能同时在早上或晚上从办公室的 2 台电脑登录
      【解决方案3】:

      尝试检查 ip,或使用 2 因素身份验证。

      (例如要求用户点击电子邮件中的链接登录)

      【讨论】:

      • 您可以查看他/她的IP,但不能依赖它,尤其是当用户有动态IP时。如果用户为这项服务付费,但由于碰巧拥有动态 IP 地址而无法正常使用,他们会很生气。
      • 然后进行2路认证
      【解决方案4】:

      我想到的唯一方法是,一旦用户登录,您可以在数据库中保留一个标志(一个表列)。因此,如果他尝试再次登录,您将检查标志是否已设置。如果设置了,那么你可以给出错误..并记住在用户注销后重置该标志..

      【讨论】:

      • 你的方案更实用。但是有一个问题。如果用户设置了“记住我”功能并想使用另一个浏览器(比如他在办公室和晚上在家中使用我的网站,两者都启用了记住功能),那么他无法从家里或办公室电脑进入没有从另一个注销。如何解决?
      【解决方案5】:

      检测他的 IP 并在每次更改时让他添加计算机(就像 Steam 所做的那样)并设置一个带有最后访问日期的标志。如果在 10 分钟内他只访问 1 的其他“计算机”没有任何活动,他所做的每个操作都会更新字段(如在线系统),你无法阻止这种情况,因为人们可能是无知的,即使你让他们输入合理的数据让他在提供他的证书时更加怀疑是徒劳的......

      【讨论】:

        猜你喜欢
        • 2011-03-14
        • 1970-01-01
        • 2015-02-17
        • 1970-01-01
        • 2012-04-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-04-23
        相关资源
        最近更新 更多