【问题标题】:Facebook Graph API and app secretFacebook Graph API 和应用秘密
【发布时间】:2014-03-12 15:33:09
【问题描述】:

我有一个 iOS 应用程序,我正在登录 Facebook 以请求 access_token。

然后我将此访问令牌传递给我的服务器,我想使用我的 appsecret_proof 获取“/me”信息,但我注意到我可以做到这一点无需 appsecret_proof

卷曲“https://graph.facebook.com/me?access_token=THE_ACCESS_TOKEN” {"id":"658267751","name":"Ricardo Otero", "first_name":"Ricardo","last_name":"Otero", "链接":"https:\/\/www.facebook.com\/oterosantos", "hometown":{"id":"107911285910314","name":"葡萄牙科英布拉"}, "location":{"id":"110432202311659","name":"葡萄牙里斯本"}...

虽然我已将“用于服务器 API 调用的应用程序秘密证明”选项设置为 true:

那么,请求不应该需要应用程序密码吗?没看懂!

【问题讨论】:

  • 根据我的经验,Graph API 只需要access_token
  • @Jhn:但出于安全原因,我希望它仅在提供应用程序机密的情况下才能工作。如果有人从客户端获取 access_token 怎么办?
  • 嗨,@RicardoOtero,我也有同样的问题,你解决了这个问题吗?
  • @JIEWANG 我想我没有。这是很久以前的事了,但我无法通过这种方式 IIRC 解决问题。

标签: ios facebook facebook-graph-api


【解决方案1】:

每个 access_token 取决于应用程序和用户,因此对于不同的应用程序和用户组合,您将拥有不同的访问令牌,因此您无需担心。虽然我不确定你为什么要这样做 http://m-farhan.com/2014/03/ios-facebook-sdk-tutorial/ 是这样做的正确方法。

【讨论】:

  • 因为我想将令牌发送到服务器(这样我就可以从那里访问 Facebook 以获取信息),如果令牌被窃听,则可以发出恶意请求!
  • 令牌有效期为 60 天,如果您真的需要它,它就会过期,在您的服务器上使用 ssl 连接,并且图形 api 始终是 ssl,所以如果您真的需要,无需担心,您可以添加密钥哈希。一旦你有了令牌,你就可以获取令牌有权访问的所有用户数据,如果有权限,甚至可以在墙上发布
  • SSL 连接无法帮助您解决攻击者可以反编译您的应用程序、提取 appsecret_proof 然后代表其他用户执行 Facebook 调用的问题。
【解决方案2】:

我也在浏览 Facebook API“appsecret_proof”参数——这里是 Facebook 开发者网站上的官方文档: https://developers.facebook.com/docs/graph-api/securing-requests#appsecret_proof -- 看起来这个 PHP 调用示例可以帮助您:

$appsecret_proof= hash_hmac('sha256', $access_token, $app_secret);

这是他们显示的示例命令行调用:

curl \
  -F 'access_token=<access_token>' \
  -F 'appsecret_proof=<app secret proof>' \
  -F 'batch=[{"method":"GET", "relative_url":"me"},{"method":"GET", "relative_url":"me/friends?limit=50"}]' \
  https://graph.facebook.com

这是一个用 Node.JS 服务器进行类似调用的人(虽然看不到特定的 FACebook/API/SDK 参考...:

Get signed_request in Node.js (Express) Facebook canvas app

【讨论】:

  • 跟进以上答案:
猜你喜欢
  • 1970-01-01
  • 2014-01-05
  • 2011-02-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-29
  • 1970-01-01
  • 2011-08-08
相关资源
最近更新 更多