代码之家  ›  专栏  ›  技术社区  ›  gustyaquino

如何防止Web应用程序/网站中的多重身份验证?

  •  3
  • gustyaquino  · 技术社区  · 15 年前

    有一个注册用户区域的站点,他们都有自己的用户/通行证。

    问题是,有些人会尝试与其他人共享身份验证信息,以帮助他们完成工作。

    没有可能被IP地址限制,因为有一个动态IP为每个人提供。

    最好的解决方案是什么?是否将会话存储在数据库中?如果注销不正确,如何恢复?

    谢谢

    5 回复  |  直到 15 年前
        1
  •  1
  •   Wrikken    15 年前

    我通常让他们玩乒乓球:一个自定义会话保存处理程序,它将会话存储在数据库中,并为用户ID添加一个额外的字段。( session_id char, session_data blob, session_user int or char )成功的登录尝试会破坏/删除具有该特定用户ID的所有其他会话,您甚至可以记录此操作的次数 DELETE 语句实际上删除了行,在某个地方有一个计数器可以明显地阻止人们过度“删除”会话。切换计算机/位置/浏览器的人仍然可以在登录后立即完成工作,共享身份验证的用户将继续彼此注销,并增加您的计数器,直到您认为合适的某个任意限制,在这种情况下,您可以禁用/锁定帐户。

        2
  •  1
  •   Loïc Février    15 年前

    如果有人在分享他们的iLogin/密码,那么你几乎无能为力。

    您可以检测到有人从两个不同的位置连接,然后关闭两个会话,但这并不能解决全部问题。

        3
  •  0
  •   CristiC jason.zissman    15 年前

    我同意Lo_c f_)Vrier的观点,即当他们共享登录信息时,您几乎无能为力。

    如果您真的想限制多个位置的用户访问,当您检测到同一用户的两个会话时,您可以通过电子邮件发送某种代码/密钥,只有帐户的真正所有者才能继续。

        4
  •  0
  •   SW4    15 年前

    没有特别有效的方法。也就是说,一种技术还可以是使用数据库存储用于登录帐户的最后一个IP,每隔x个时间对数据库执行ping操作,如果客户端IP与用于登录的最后一个IP不匹配,则结束会话。

    您还可以跟踪用于访问帐户的IP,并限制每个用户说,三个。如果他们想要另一个(可能是合法的),或者他们超过了这个数量-你必须联系/批准。这是一种被动的方法,但可以确保通过可疑的帐户共享通知您。

        5
  •  0
  •   Scoregraphic    15 年前

    业务解决方案

    制定不允许任何人共享登录信息的准则。跟踪所有登录操作,如果看到并发访问,请阻止用户。

    a)被阻止的用户会打电话给你,哭喊他的登录不起作用:给第二次和最后一次机会。如果不接受,告诉老板。如果你是老板,那就放火吧。

    b)被阻止的用户不会给您打电话。我想知道他现在怎么能工作。-&告诉老板。如果你是老板,那就放火吧。

    编程解决方案

    在登录屏幕上,设置一个标志(IP地址?)在用户当前登录的数据库中。注销时,重置标志。如果用户已登录,则不允许登录。如果用户未正确注销,则仍将设置标志。因此,请为标志定义超时。大约5分钟就可以了。共享登录对任何人都没有好处,因为当您检查每个页面访问时,他总是需要再次登录。

    推荐文章