在我的应用程序中,我有标准的电子邮件身份验证,以及两个oauth服务(比如Google和Facebook)
如果用户已注册Facebook,但他们尝试通过常规电子邮件身份验证登录,我应该告诉他们使用Facebook吗?
起初,我认为这很简单,但意识到这可能会产生潜在的安全后果。
你们都在想什么?
(另外,在Stack Overflow上问这个问题,或者我应该重新发布软件工程吗?)
答案 0 :(得分:1)
用户可能已禁用Facebook(或其他某些服务)选项,以便通过他/她的电子邮件查找。因此,提供建议通过Facebook登录的消息可能不是一个好的解决方案,因为攻击者可以获得用户标记为私有的信息。
我要做的是,我会将用户不存在时显示的消息更改为“无效用户”(如果您已使用某些其他服务(例如Facebook)注册),请登录使用该服务)“。我会将此消息呈现给不存在的用户以及使用某些服务注册的用户。通过这种方式,攻击者无法区分未注册的用户和使用某项服务注册的用户,而合法用户可能会看到可能出错的提示。我相信会出现一些可用性问题,但这样可以更好地尊重用户的隐私。