我正在学习 OAuth,我脑子里有一个问题,我找不到答案。
我理解请求令牌是否授权应用程序使用 API。但是,一旦用户获得了访问令牌,如果有人窃取了他的访问令牌,会发生什么情况?
想象一下我们有类似的东西http://www.example.com/api/article/1?access_token= http://www.example.com/api/article/1?access_token=*****访问令牌*****
如果我将此 URL 提供给其他用户,其他用户将拥有我的访问权限,因此 API 不再受到保护?
简短回答:是的,对于 OAuth2 - 拥有有效 access_token 的人都可以访问该令牌指定的资源。持续多久取决于 OAuth2 提供者的实现。
关于 OAuth1 和 2 的长答案:
到那个时刻OAuth 1 http://oauth.net/core/1.0/ 访问令牌是不够的。您还需要访问令牌秘密以及消费者密钥和秘密。保持访问令牌的机密性并限制其范围和有效时间仍然是件好事,但如果没有客户端和令牌机密,则无法使用访问令牌。 OAuth 1 不要求您使用 SSL,因为加密技术已内置于规范中。
OAuth 2 http://oauth.net/2/是不同的 - 访问令牌的保密可以说更重要。因此,API 提供商应确保访问令牌(在 OAuth2 中也称为承载令牌)仅在尽可能短的时间内有效。这些令牌的工作方式类似于密码,如果被拦截,攻击者可以立即使用。因此,OAuth2(带有不记名令牌)规范要求所有通信都通过 SSL 进行 - 因为规范中没有内置加密技术。通常,访问令牌具有较短的有效性,可以使用具有较长有效性的“刷新令牌”进行刷新,但仅在消费者接收到初始不记名令牌以及刷新不记名令牌时才传输。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)