2011-12-11 119 views
0

如果使用客户端流,回调URL包含访问令牌。因此,如果通过HTTP发送回调URL,是不是很容易被捕获和滥用。在oAuth2中窃取访问令牌

如果我的应用的用户2获取用户1的访问令牌,他可以访问用户1的帐户。

此外,如果用户复制回叫网址并将其发送给某人,他会不知不觉地将其他人访问他的帐户。

我能想到的缓解的某些方面,这 - 使回调URL HTTPS,并在客户端脚本从URL等删除访问令牌是如何你预计处理这个

回答

0

的客户方流在URL的散列部分发送oauth_token(/path?#access_token=abcdef),而不是在查询部分。接收客户端将其存储在sessionStorage(或其他)中是一个好主意,最后使用window.location.hash = '';将其从URL中删除。

+0

谢谢汤姆。是的,这也是我的想法,存储令牌并将其从url/hash中移除。你怎么看待使用HTTP的回调URL。这不是不安全的吗(例如,如果我可以监听网络流量,我将能够看到某人的访问令牌为纯文本)?我们应该使用HTTPS吗?当你在注册你的应用程序时指定一个回调URL时,我感到很惊讶,这不是由Google等强制执行的。 – Aishwar

+0

散列实际上不是在HTTP请求中发送的,它是客户端的事情。只有重定向的服务器才知道access_token,并且该服务器应该具有SSL(根据OAuth规范)。如果规范完全实现,则OAuth 2的服务器实现可以被认为是安全的。 –

+0

啊,我明白了。当谷歌重定向到回调url时,我的印象就是这样,如果请求/响应被检查,这个整个url将是可见的 - 但似乎并非如此(用Fiddler检查)。感谢你的回答 :) – Aishwar

相关问题