11

在隐式授予中,访问令牌在回调 URL 中发回。这不是安全风险吗,因为如果此回调 URL 缓存在跃点中。一般来说,建议不要在 URL 参数中发送敏感数据,并且此访问令牌将是访问所有受保护用户资源的令牌。那么为什么它在 URL 中作为片段传递

4

3 回答 3

8

嗯,恐怕上面的答案有一些误解。虽然使用 TLS 时 URL 查询字符串是安全的,因此访问令牌在飞行中受到保护,但它会暴露在用户浏览器(他们历史的一部分)以及目标 Web 浏览器日志中。大多数 Web 浏览器都会记录传入请求的整个 URL。它们是一个称为“引用”泄漏问题的附加问题,其中查询字符串将被传递到第三方站点。可以在以下位置找到一个很好的概述:

http://blog.httpwatch.com/2009/02/20/how-secure-are-query-strings-over-https/

于 2013-12-14T03:04:16.883 回答
2

就像您指出的那样,令牌是通过 URI 片段传递的。由于浏览器不会将 URL 片段发送到 HTTP 服务器,因此有人窃听并获取访问令牌的机会大大降低。

还有其他安全措施,例如仅在隐式授权流程中发布短期访问令牌。

OAuth2威胁模型文档中的更多信息。

于 2013-01-15T00:30:27.940 回答
2

详细说明@vlatko 的回应......

为了降低在片段中发送令牌的风险(或通过任何其他 OAuth2 授权):

  • 确保 OAuth 端点和回调端点是 TLS (https)(参见对策
  • 发送状态参数以防止跨站点伪造(另见:https ://www.rfc-editor.org/rfc/rfc6749#section-4.2.1 )

发行短期访问令牌(如@vlatko 所说)将减少泄漏令牌的影响,但不是预防措施。

于 2013-01-15T09:26:37.660 回答