11

我有兴趣在我的 Web 应用程序上实现一项功能,该功能可以在用户上次访问后发生可疑登录时发出警告。

我的下意识反应是使用客户端的 IP 地址,但经过我的研究,这似乎是一个糟糕的主意。动态分配和 NAT 表明这是不可靠的。

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

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

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

4

1 回答 1

15

这取决于您的业务规则。您可以根据几个因素对其进行评分。

  1. 不同IP:+5
  2. 不同子网:+10
  3. 不同国家:+100
  4. 成功前 3 次或更多尝试:+50
  5. 2个或更多同时登录:+50
  6. 与上次不同的浏览器:+5

等等

然后你可以设置规则说:

  1. 0-20:告诉用户下次登录成功。
  2. 21-50:开始让他们在两次登录之间等待 5 分钟。
  3. 51-100:锁定帐户并通过电子邮件确认强制他们解锁。

我总是会像 gmail 一样向他们显示登录的最后日期和 IP。Gmail 还具有您可以查看的登录历史记录。

编辑:这是一个非常古老的答案,仍然有一些观点。今天我可能会推荐一个 2FA 解决方案。什么是双重身份验证?

于 2013-02-13T19:24:27.247 回答