Oauth 2.0 Implicit Grant的安全性如何?

Kar*_*hik 10 security application-security oauth-2.0 web

在Implicit Grant中,访问令牌在回调URL中发回.这不是安全风险,因为如果此回调URL缓存在跃点中.一般情况下,建议不要在URL参数中发送敏感数据,并且此访问令牌将是访问所有安全用户资源的令牌.那么为什么它会在URL中作为片段传递

小智 7

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

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


cod*_*ion 2

详细阐述@vlatko 的回应...

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

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

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