Facebook'code'参数作为OAuth身份验证的查询字符串的一部分

时间:2014-10-12 05:11:28

标签: java php facebook security oauth-2.0

即使授权代码与授权令牌相比是短暂的,但在发送“GET'”时,还有一个漏洞。作为查询字符串?它与使用GET方法发送密码类似吗?

换句话说,在认证之后,facebook将用户的浏览器重定向到mysite.com,将授权代码作为查询字符串发送。它没有加密吗?正在听你的数据包的中间人可以读它并用它来劫持你的会话(在mysite.com上的会话)?

说,

  1. 我阻止了重定向(在获取Facebook的代码'之后) 我的浏览器端(使用一些浏览器插件/插件)
  2. 我复制了完整的重定向网址 (www.mysite.com?code=AQCOtAV..blah)并尝试从不同的 浏览器。
  3. 请求将通过,mysite.com将与facebook联系 使用入站授权代码以及secretKey和clientId 并验证并生成授权令牌(我真的没有 尝试了这一步:步骤3)
  4. 我知道我在这里遗漏了一些东西。请帮助我。

1 个答案:

答案 0 :(得分:1)

感谢@Zólyomi指出即使授权代码作为查询参数发送,它也会使用HTTPS发送。

<强>答案: 通过https发送的查询字符串是安全的。无论您使用哪种http方法GET或POST,其加密且无中间人都可以收听。更多信息。 Is an HTTPS query string secure?

然而,由于许多其他原因,在查询字符串中发送密码不是一个好习惯(密码可能在服务器日志中显示为纯文本作为URL的一部分等)。但这不适用于此,因为授权代码是一个短暂的代码,一旦交换授权令牌就无用了。