首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Facebook没有正确验证appsecret_proof

Facebook没有正确验证appsecret_proof
EN

Stack Overflow用户
提问于 2015-03-04 14:14:17
回答 1查看 2.6K关注 0票数 0

我有一个服务器应用程序,它从客户端接收用户访问令牌并生成一个appsecret_proof。为了验证接收到的访问令牌是否有效,我想进行一个图形API调用:

代码语言:javascript
运行
复制
curl \
  -F 'access_token=<my access token>' \
  -F 'appsecret_proof=<my appsecret_proof>' \
  https://graph.facebook.com/me

但是,当我省略appsecret_proof字段时,请求仍然被验证。在这两种情况下,答复是:

代码语言:javascript
运行
复制
{"success":true}

如果我有意传递无效的appsecre_proof,它就会像预期的那样工作:

代码语言:javascript
运行
复制
{"error":{"message":"Invalid appsecret_proof provided in the API argument","type":"GraphMethodException","code":100}}

我在高级设置中做了必要的修改:

根据Facebook文档:“当启用该功能时,我们将只允许包含appsecret_proof或来自发出令牌的同一设备的API调用。”“一旦您更改了该设置,攻击者将无法在不访问您的应用程序机密的情况下使用窃取的访问令牌。”

我在这里错过了什么?

EN

回答 1

Stack Overflow用户

发布于 2015-10-04 10:45:58

appsecret_proof应用程序的密钥不一样。根据FB文件,需要这样获得:

您可以使用此生成的HMAC作为我的appsecret_proof (例如):-

代码语言:javascript
运行
复制
curl \
-F 'access_token=<my access token>' \
-F 'appsecret_proof=<my appsecret_proof>' \
-F 'batch=[{"method":"GET", "relative_url":"me"},{"method":"GET", "relative_url":"me/friends"}]'
https://graph.facebook.com/me

省略appsecret_proof字段可能会有所帮助,但在某些区域,FB需要它,这就是您需要提供的方法。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28856675

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档