appsecret_proof 如何提供更好的安全性?
How does the appsecret_proof provide better security?
Graph API 提供了一种叫做 appsecret_proof
的东西,但它比访问令牌有什么不妥协的呢?它是访问令牌和秘密的 HMAC,因此无论如何每个 API 调用都是相同的。由于每个 API 调用都需要 appsecret_proof
和访问代码,因此可以将它们一起嗅探。那么它如何让事情变得更安全呢?原理是什么?
假设有人破解了您的应用程序并获得了另一个用户的访问令牌。没有 appsecret_proof
,他将能够使用访问令牌进行恶意操作。对于 appsecret_proof
,仅访问令牌对任何获得它的人来说都是无用的。您只能将访问令牌与生成的 appsecret_proof
一起使用,因此您也需要 App Secret - 而且 App Secret 无论如何只能在服务器上使用。它被称为 "Secret" 是有原因的:)
更多信息:https://developers.facebook.com/docs/graph-api/securing-requests
示例:扩展页面令牌永远有效,因此它们通常存储在数据库中。如果某个用户可以访问其中一个,他可能能够将内容发布到页面墙上(如果令牌包含 publish_actions
)。 appsecret_proof
确保您只能将服务器上的页面令牌与 App Secret 一起使用。因此,黑客必须获得页面令牌,并且他还需要以某种方式获得您的 App Secret。
Graph API 提供了一种叫做 appsecret_proof
的东西,但它比访问令牌有什么不妥协的呢?它是访问令牌和秘密的 HMAC,因此无论如何每个 API 调用都是相同的。由于每个 API 调用都需要 appsecret_proof
和访问代码,因此可以将它们一起嗅探。那么它如何让事情变得更安全呢?原理是什么?
假设有人破解了您的应用程序并获得了另一个用户的访问令牌。没有 appsecret_proof
,他将能够使用访问令牌进行恶意操作。对于 appsecret_proof
,仅访问令牌对任何获得它的人来说都是无用的。您只能将访问令牌与生成的 appsecret_proof
一起使用,因此您也需要 App Secret - 而且 App Secret 无论如何只能在服务器上使用。它被称为 "Secret" 是有原因的:)
更多信息:https://developers.facebook.com/docs/graph-api/securing-requests
示例:扩展页面令牌永远有效,因此它们通常存储在数据库中。如果某个用户可以访问其中一个,他可能能够将内容发布到页面墙上(如果令牌包含 publish_actions
)。 appsecret_proof
确保您只能将服务器上的页面令牌与 App Secret 一起使用。因此,黑客必须获得页面令牌,并且他还需要以某种方式获得您的 App Secret。