【发布时间】:2015-04-24 11:45:02
【问题描述】:
我正在执行服务器端 oAuth2 流程。
我注意到 google 为他们的 oAuth2 登录 API 添加了一个很酷的功能,即 redirect_uri=postmessage,因此我们不会在浏览器 url 栏上显示真正的 redirect_uri,authorization code 不会包含在重定向 url 中.
对于linkedin,当用户同意与应用分享他的个人数据时,响应网址如下:
http://dev.localhost.com:8080/auth/linkedin?code=xxxxxxxxxxx&state=yyyyyyyyyyyyy
Google 是一样的,除非我们用postmessage 替换真正的redirect_uri。
如果在 url 中设置了 redirect_uri + 响应代码,每个恶意脚本都可以从 url 中检索返回的code 并执行自己的身份验证。
那么,有什么方法可以隐藏 LinkedIn 和 Facebook 的返回参数和 redirect_uri 吗?
【问题讨论】:
-
“每个恶意脚本都可以从 url 检索返回的代码并执行自己的身份验证” - 不,他们不能,因为将
code交换为访问令牌需要您的应用程序密码。 (如果您将其暴露于 3rd 方脚本,那么您已经遇到了更大的问题。) -
我明白了。这澄清了事情,谢谢。
标签: facebook oauth-2.0 google-plus linkedin