【发布时间】:2012-12-27 04:40:13
【问题描述】:
在隐式授予中,访问令牌在回调 URL 中发回。这不是安全风险吗,因为如果此回调 URL 缓存在跃点中。一般来说,建议不要在 URL 参数中发送敏感数据,并且此访问令牌将是访问所有受保护用户资源的令牌。那么为什么它在 URL 中作为片段传递
【问题讨论】:
标签: security web oauth-2.0 application-security
在隐式授予中,访问令牌在回调 URL 中发回。这不是安全风险吗,因为如果此回调 URL 缓存在跃点中。一般来说,建议不要在 URL 参数中发送敏感数据,并且此访问令牌将是访问所有受保护用户资源的令牌。那么为什么它在 URL 中作为片段传递
【问题讨论】:
标签: security web oauth-2.0 application-security
嗯,恐怕上面的答案有一些误解。虽然使用 TLS 时 URL 查询字符串是安全的,因此访问令牌在飞行中受到保护,但它会暴露在用户浏览器(他们历史的一部分)以及目标 Web 浏览器日志中。大多数 Web 浏览器都会记录传入请求的整个 URL。它们是一个称为“引用”泄漏问题的附加问题,其中查询字符串将被传递到第三方站点。可以在以下位置找到一个很好的概述:
http://blog.httpwatch.com/2009/02/20/how-secure-are-query-strings-over-https/
【讨论】:
详细说明@vlatko 的回复...
为了降低在片段中发送令牌的风险(或通过任何其他 OAuth2 授权):
发行短期访问令牌(如@vlatko 所说)将减少令牌泄露的影响,但不是预防措施。
【讨论】:
正如您所指出的,令牌是通过 URI 片段传递的。由于浏览器不会将 URL 片段发送到 HTTP 服务器,因此有人窃听并获取访问令牌的机会大大降低。
还有其他安全措施,例如在隐式授权流程中仅发布短期访问令牌。
OAuth2 threat models document 中的更多信息。
【讨论】: