Security 如何可靠地检测用户是否使用新设备连接到站点?

Security 如何可靠地检测用户是否使用新设备连接到站点?,security,authentication,web,Security,Authentication,Web,我有一个要求,即每当注册用户使用新设备/浏览器登录站点时,必须获得电子邮件(或SMS)验证,这与Salesforce的做法类似 目标是减少用户帐户被他人滥用的机会,但同时不应成为用户的麻烦 检测请求是否来自新设备的可靠机制是什么 一种方法是使用IPAddress,但当某人的internet连接获得动态IP时,以及移动设备在移动到新地方时将获得新IP时,这会导致问题。 具有该设备上所有浏览器(FF/Chrome/IE)都经过一次确认授权的优势 另一种方法是使用持久cookie(无滑动过期),缺点是

我有一个要求,即每当注册用户使用新设备/浏览器登录站点时,必须获得电子邮件(或SMS)验证,这与Salesforce的做法类似

目标是减少用户帐户被他人滥用的机会,但同时不应成为用户的麻烦

检测请求是否来自新设备的可靠机制是什么

一种方法是使用IPAddress,但当某人的internet连接获得动态IP时,以及移动设备在移动到新地方时将获得新IP时,这会导致问题。 具有该设备上所有浏览器(FF/Chrome/IE)都经过一次确认授权的优势

另一种方法是使用持久cookie(无滑动过期),缺点是必须针对不同的浏览器重复确认。(不过这不是一个大问题,因为这不太可能发生)

第三种选择是上述两种方法的混合解决方案

我的问题是,有没有公认的机制可以做到这一点?有什么可靠的方法可以检测是否有人正在使用新设备连接到站点(不必是防弹的)?还有其他建议吗?

我同意

IP地址通常是共享的。除了通过网络上的浏览器之外,实际上没有其他方法来识别他们的计算机

cookie值应该包括用户名和用户名的HMAC(可能还有nonce)

用户成功注册或登录后,发送设备cookie。如果他们试图在没有设备cookie的情况下登录,他们可能以前从未使用过该浏览器