通常,当您在网站上执行敏感操作(例如更改密码或启用双因素身份验证)时,您需要重新输入密码,大概是为了防止会话被劫持(可能是由于拦截或实际使用计算机的人造成的)。但是,如果使用OpenID注册的用户或使用OAuth身份验证提供程序(如谷歌或Facebook )的用户,重新身份验证对实际使用计算机的人的使用是有限的,因为用户仍然很可能被登录到他们的Google/Facebook/etc帐户,因此没有密码重提示。它仍然可以防止会话ID被盗,并用于添加本地密码,但如果站点在HTTPS上运行,则这不是一个主要问题。
是否有任何方法来验证请求的真实性,例如,向以前只使用外部服务验证登录的帐户添加本地密码,还是必须承担风险?
发布于 2016-09-11 02:05:18
可以合理地认为,一个特定的用户在一个站点上可能拥有许多不同的特权,其中一些权限更大,一些权限更小。在OAuth土地上,舞蹈向用户传递一个令牌,而令牌所针对的站点将定义令牌所包含的特权。
因此,站点可以决定只包含与发起OAuth舞蹈的用户提出的特定请求相关联的特权,这可能比同一用户在站点上可能拥有的全部权限更窄。
然后,如果用户--其授权体现在该令牌中--希望执行令牌提供的特权不允许的某些操作,则站点可以拒绝允许他们执行该操作,并且可以为用户提供重新启动OAuth舞蹈的另一个机会,即使这涉及到用户重新输入相同的凭据。
这对于可用性来说不是很好,但它是允许的。
尽管如此,所列举的具体情况--改变“地方”证书--也许不应被视为一个需要解决的问题。用于身份验证的多个真相来源通常不是一个好主意。
https://security.stackexchange.com/questions/136452
复制相似问题