1

我的问题与这个问题有关,但不完全是。

我目前正在开发一个企业目录网站(类似于 Yelp),其中企业有自己的页面。让我们称之为这个应用程序DIRECTORY_APP

企业可能希望在我们目录上托管的页面上显示其最新的 Facebook 状态更新。假设我们有一个名为 的企业BIZ_1。假设这些页面是公共页面。

显然 Facebook Graph API 可用于此目的。因此,我可以向 Facebook 发送请求以检索以下内容的最新状态更新BIZ_1

https://graph.facebook.com/BIZ_1_PROFILE_ID/posts?
        access_token=DIRECTORY_APP_ACCESS_TOKEN
        &callback=callbackName

但是,如果我从客户端使用它,我们网站的访问令牌将暴露给公众,所以这不是一个合理的解决方案。

现在在上述问题中,Anatoly 提到我们可以通过首先发送此请求来检索访问令牌:

https://graph.facebook.com/oauth/access_token?
        client_id=YOUR_APP_ID&client_secret=YOUR_APP_SECRET
        &grant_type=client_credentials

但是,如果有人检查网络日志,这也会暴露我们网站的访问令牌(这是正确的还是不同类型的访问令牌?)。此解决方案还公开了我们网站的应用程序机密(这安全吗?)。

总而言之,在不要求浏览用户首先登录 Facebook 的情况下,我可以从客户端检索网页的最新状态更新的安全方法是什么?

4

3 回答 3

0

也许这里的聪明技巧是使用社交插件。Like Box会做你想做的事,没有任何问题。但是,它不是可定制的。即便如此,也可以让它在页面上看起来不错!

它还会跳过您提到的任何登录问题。

于 2013-01-10T23:59:49.610 回答
0

经过一番谷歌搜索后,我找到了答案。简而言之,答案是否定的。

以下是Facebook的摘录:

安全最佳实践

App Secret 和 App Access Token

App Secret 在某些登录流程中用于生成访问令牌,并且 Secret 本身旨在保护您的 App 的使用仅限于那些受信任的人。该秘密可用于轻松创建应用访问令牌,该令牌可以代表应用的任何用户发出 API 请求,这使得应用秘密不被泄露非常重要。

因此,App Secret 或 App Access 令牌不应包含在任何代码中,任何代码都不能被除应用程序开发人员之外的任何人访问。这适用于所有不受保护的代码方法,例如可以反编译的客户端代码(例如 HTML 或 Javascript)或本机应用程序(例如 iOS、Android 或 Windows 桌面应用程序)。

我们建议仅应直接从您的应用服务器使用应用访问令牌,以提供最佳安全性。对于原生应用,我们建议应用与您自己的服务器通信,然后服务器使用应用访问令牌向 Facebook 发出 API 请求。因此,如果您在 App Dashboard 的 Advanced Settings 下的“App Type”设置为 Native/Desktop,我们假设您的原生应用在二进制文件中包含 App Secret 或 App Access Token,并且我们不允许使用签名的调用应用访问令牌以继续。API 的行为就像没有提供访问令牌一样。

如果您的 App Secret 被泄露,您应该立即在 App Dashboard 的基本设置中重置它。

于 2013-01-12T13:14:17.393 回答
0

我可以从客户端检索网页的最新状态更新,而无需要求浏览用户首先登录 Facebook

你不能在没有登录的情况下做到这一点。

而且我猜访问令牌没有暴露。

于 2013-01-10T06:46:45.463 回答