OAuth2:redirect_uri发布LinkedIn& Facebook的

时间:2015-04-24 01:00:20

标签: facebook oauth-2.0 google-plus linkedin

我正在执行服务器端oAuth2流程。

我注意到谷歌为他们的oAuth2登录API添加了一个很酷的功能,redirect_uri=postmessage因此我们不会在浏览器网址栏上显示真正的redirect_uri,并且不会包含authorization code在重定向网址。

对于linkedin,当用户接受与应用分享他的个人数据时,回复网址如下:

http://dev.localhost.com:8080/auth/linkedin?code=xxxxxxxxxxx&state=yyyyyyyyyyyyy

Google的情况相同,除非我们用redirect_uri替换真实postmessage

如果在网址中设置了redirect_uri +响应代码,则每个恶意脚本都可以从网址中检索返回的code并执行自己的身份验证。

那么,有没有办法隐藏LinkedIn和Facebook的返回参数和redirect_uri?

1 个答案:

答案 0 :(得分:1)

LinkedIn和Facebook不容易受到访问redirect_uri的恶意脚本的攻击。<​​/ p>

假设您使用推荐的response_type=code两个API,您需要从服务器发出包含API密码和code值的请求,以获取用户令牌。 LinkedIn在Exchange Authorization Code for a Request Token中对此进行了描述,Facebook在Exchanging code for an access token中对此进行了描述。

使用Facebook的额外安全性可以要求every request be signed with your API secret。通常可以使用强大的Content Security Policy来帮助防止恶意脚本首先运行,从而获得额外的保护。并确保通过TLS专门托管您的网站,以防止您自己的JavaScript被修改。