【发布时间】:2014-07-26 23:01:51
【问题描述】:
我在我的服务器上使用 Facebook PHP SDK(v3.2.3,而不是 v4.0)(https://developers.facebook.com/docs/reference/php/3.2.3),并在我的 Phonegap v3 中手动安装了 Phonegap Facebook 插件(主)(https://github.com/phonegap/phonegap-facebook-plugin)。 3.0 iOS 应用。
我已经很好地设置了所有内容,该应用程序显示了 Facebook 访问令牌和身份验证用户的“用户 ID”。问题是,Facebook 令牌只能持续大约 2 个月。为了解决这个问题,我创建了一个表格,其中包含 Facebook 为我所有基于 FB 的用户提供的每个 FB 访问令牌。这非常适合我网站的“使用 Facebook 登录”按钮!
...但是由于这个 Phonegap 插件将设备作为 Facebook 和我的数据库之间的中间人,我需要我的服务器直接与 Facebook 进行双重检查,以验证用户提供的用户 ID 和访问令牌是真实的。我已经看到我可以查询https://graph.facebook.com/app?access_token=TOKEN 或执行以下操作:
GET /debug_token?
input_token={input-token}&
access_token={access-token}
... 显然可以取回我需要的一切,但我感觉攻击者可以不断攻击我的 PHP 脚本,一遍又一遍地与 Facebook 进行检查,直到他们找到成功 - 然后他们将拥有访问所需的凭据我的应用代表他们猜到了令牌的那个用户。
如果攻击者在几周内猜测任何 Facebook 访问令牌的想法很荒谬,请告诉我。但我希望缩小范围并迫使攻击者也知道他们在猜测哪个用户的访问令牌——这应该几乎不可能破解。那么如何同时使用用户访问令牌和用户的数字 ID 来验证用户呢?
【问题讨论】:
标签: php ios facebook facebook-graph-api cordova