【问题标题】:Is it insecure to expose Facebook app token in client side?在客户端公开 Facebook 应用程序令牌是否不安全?
【发布时间】:2015-01-14 17:37:22
【问题描述】:

我的网站发出 JS Facebook Graph API 请求,例如

https://graph.facebook.com/v2.2?id=http://[URL]&format=json&access_token=[FB app id]|[FB app token]

获取每个帖子的 Facebook 分享数。应用 ID 是我的 Facebook 应用 ID 号,应用令牌是长期访问令牌。

这两个值都在客户端公开,尽管我的应用机密是私有的,并且我在服务器端生成应用令牌。

这种做事方式不安全吗?我是否需要将这些请求移动到服务器端并创建自己的端点来报告共享计数?

Facebook 的documentation 有点混乱。它说:

再次重申,为了安全起见,应用访问令牌永远不应被硬编码到客户端代码中,这样做会使加载您的网页或反编译您的应用的每个人都可以完全访问您的应用机密,从而能够修改您的应用程序。这意味着大多数时候,您只会在服务器到服务器调用中使用应用访问令牌。

请注意,由于此请求使用您的应用程序密钥,因此绝对不能 在客户端代码或可以反编译的应用程序二进制文件中制作。 重要的是,您的应用程序机密永远不会与任何人共享。 因此,此 API 调用只能使用服务器端代码进行。

我没有对应用访问令牌进行硬编码,我将我的应用保密。但我在客户端到服务器调用中使用应用程序令牌。我需要改变这个吗?

【问题讨论】:

    标签: javascript facebook api security facebook-graph-api


    【解决方案1】:

    我认为文档(https://developers.facebook.com/docs/facebook-login/access-tokens#apptokens)很清楚,您也引用了它们:

    同样,为了安全起见,应用访问令牌应该永远不要被硬编码到客户端代码中,这样做会让加载您的网页或反编译您的应用的每个人都可以完全访问您的应用密码,因此能够修改您的应用程序。这意味着大多数时候,您将仅在服务器到服务器调用中使用应用访问令牌。

    我想知道你怎么说它不是硬编码的......如果是这样,应用访问令牌来自哪里?

    【讨论】:

      猜你喜欢
      • 2022-11-10
      • 2019-11-13
      • 2014-04-19
      • 1970-01-01
      • 2012-10-08
      • 2016-04-14
      • 1970-01-01
      • 1970-01-01
      • 2020-09-21
      相关资源
      最近更新 更多