Php 什么';有哪些可靠的方法可以识别可疑登录?

Php 什么';有哪些可靠的方法可以识别可疑登录?,php,javascript,web-applications,ip,Php,Javascript,Web Applications,Ip,我感兴趣的是在我的web应用程序上实现一个功能,当用户上次访问后出现可疑登录时,该功能会向用户发出警告 我下意识的反应是使用客户的IP地址,但在做了研究之后,这似乎是一个糟糕的想法。动态分配和NAT表明这是不可靠的 我的第二个想法是使用地理定位服务。但我能找到的不是基于IP的,就是超出了我的价格范围 我的第三个想法是实现Facebook的“注册此设备”提示,但我不确定这是如何以可靠的方式工作的 有没有人对我如何以合理的置信度识别设备或位置有什么想法?这取决于您的业务规则。你可以根据几个因素给它打

我感兴趣的是在我的web应用程序上实现一个功能,当用户上次访问后出现可疑登录时,该功能会向用户发出警告

我下意识的反应是使用客户的IP地址,但在做了研究之后,这似乎是一个糟糕的想法。动态分配和NAT表明这是不可靠的

我的第二个想法是使用地理定位服务。但我能找到的不是基于IP的,就是超出了我的价格范围

我的第三个想法是实现Facebook的“注册此设备”提示,但我不确定这是如何以可靠的方式工作的


有没有人对我如何以合理的置信度识别设备或位置有什么想法?

这取决于您的业务规则。你可以根据几个因素给它打分

  • 不同的IP:+5
  • 不相同的子网:+10
  • 不同国家:+100
  • 成功前尝试3次或以上:+50
  • 同时有2个或多个登录:+50
  • 与上次不同的浏览器:+5
  • 等等

    然后,您可以设置如下规则:

  • 0-20:告诉用户下次成功登录
  • 21-50:开始让他们在登录之间等待5分钟
  • 51-100:锁定帐户并通过电子邮件确认强制他们解锁
  • 我会像gmail一样向他们显示最后的登录日期和IP地址。Gmail还有一个登录历史记录,你可以查看

    编辑:
    这是一个非常古老的答案,仍然有一些看法。今天我可能会推荐一种2FA解决方案

    据我所知,最简单的方法是显示“2012年12月23日下午12:34 MST的最后一次登录”,如果IP地址不匹配,可以附加“来自IP 10.20.30.40”,让用户决定是否有任何可疑活动。在浏览器中使用cookies不确定这里是否允许提及商业产品(我刚刚使用过,没有其他连接)但是maxmind.com有一系列geoIP产品和反frud产品,如果您还不知道它们试图以相同密码(通常是明显的“密码”或站点名称)作为多个用户名登录,它们可能会有所帮助有时是从同一个IP快速连续登录,但通常不是。@BobKaufman我喜欢“最后一次登录”的想法,但我的用户群根本不是技术性的。理想情况下,我希望从他们那里提取一点“源”。也许仅仅一个时间和日期就足够了?我不确定。