我有一项要求,即只要注册用户使用新设备/浏览器登录网站,就会获得电子邮件(或SMS)验证,类似于Salesforce正在进行的操作。
目标是减少某人滥用用户帐户的机会,但与此同时不应对用户造成滋扰。
检测请求是否来自新设备的可靠机制是什么?
一种方法是使用IPAddress,但这会导致某人的互联网连接获得动态IP时出现问题,而移动设备会在移动到新位置时获得新IP。 该设备上的所有浏览器(FF / Chrome / IE)的优势是经过单一确认授权。
其他方式是使用持久性cookie(没有滑动到期),缺点是必须为不同的浏览器重复确认。 (虽然这不是一个很大的问题,但不是一个很大的问题)。
第三种选择是上述两种混合解决方案。
我的问题是,是否有可接受的机制来执行此操作?检测某人是否正在使用新设备连接到该站点的可靠方法是什么(虽然不一定是防弹)?还有其他建议吗?
答案 0 :(得分:2)
我选择Cookie。
通常会共享IP地址。除了通过网络上的浏览器之外,还没有真正识别计算机的方法。
Cookie值应包含用户名和用户名的HMAC(也可能是nonce)。
用户注册或登录成功后,发送设备cookie。如果他们试图在没有设备cookie的情况下登录,他们可能以前没有使用过该浏览器。