为什么不能窃取访问令牌?

时间:2011-07-08 08:16:18

标签: security oauth access-token

我正在学习OAuth,我有一个问题,我无法找到一个anwser ..

我理解请求令牌授权或不授权应用程序使用API​​。但是一旦用户获得了访问令牌,如果有人窃取了他的访问令牌会发生什么?

想象一下,我们有像http://www.example.com/api/article/1?access_token= ****** access_token ******

这样的东西

如果我将此网址提供给其他用户,则其他用户可以访问该网址,因此API不再受到保护?

1 个答案:

答案 0 :(得分:9)

简短回答:是的,对于OAuth2 - 拥有有效access_token的人可以访问该令牌指定的资源。多长时间取决于OAuth2实现提供者。

关于OAuth1和2的长答案:

说到OAuth 1 ,访问令牌还不够。您还需要访问令牌密钥以及使用者密钥和密钥。保持访问令牌的机密性并限制其范围和有效时间仍然是好的,但是如果没有客户端和令牌机密,则无法使用访问令牌。 OAuth 1不要求您使用SSL,因为加密是内置于规范中的。

OAuth 2是不同的 - 访问令牌保密是更重要的。因此,API提供商应确保访问令牌(OAuth2中也称为承载令牌)仅在尽可能短的时间内有效。这些令牌就像密码一样工作,如果拦截可以被攻击者立即使用。因此,OAuth2(带有承载令牌)规范要求所有通信都通过SSL进行 - 因为规范中没有内置加密。通常,访问令牌具有较短的有效性,可以使用“刷新令牌”刷新,该刷新令牌具有更长的有效性,但仅在消费者接收到初始承载令牌时以及刷新承载令牌时进行转移。