我有兴趣在我的 Web 应用程序上实现一项功能,该功能可在用户上次访问后出现可疑登录时向用户发出警告。
我的下意识 react 是使用客户端的 IP 地址,但经过我的研究,这似乎是一个糟糕的主意。动态分配和 NAT 表明这是不可靠的。
我的第二个想法是使用地理定位服务。但我能找到的那些要么是基于 IP 的,要么超出了我的价格范围。
我的第三个想法是实现类似 Facebook 的“注册此设备”提示的功能,但我不确定它如何以可靠的方式工作。
对于我如何以合理的置信度识别设备或位置,有没有人有任何想法?
最佳答案
这取决于您的业务规则。您可以根据几个因素对其进行评分。
- IP不一样:+5
- 不在同一个子网:+10
- 不在同一个国家:+100
- 成功前 3 次或更多次尝试:+50
- 同时登录 2 个或更多:+50
- 与上次不同的浏览器:+5
等等
然后你可以设置这样的规则:
- 0-20:告诉用户下次成功登录。
- 21-50:开始让他们在两次登录之间等待 5 分钟。
- 51-100:锁定帐户并通过电子邮件确认强制他们解锁。
我会像 gmail 一样向他们显示最后登录日期和 IP。 Gmail 也有您可以查看的登录历史记录。
编辑: 这是一个非常古老的答案,仍然有一些观点。今天我可能会推荐一个 2FA 解决方案。 What is two-factor authentication?
关于php - 识别可疑登录的可靠方法有哪些?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14861213/