当前位置:  开发笔记 > 运维 > 正文

暴露Facebook API秘密有哪些潜在问题?

如何解决《暴露FacebookAPI秘密有哪些潜在问题?》经验,为你挑选了1个好方法。

我正在写一个小的Web实用程序,它将状态更新发布到Twitter和/或Facebook.这涉及使用这两种服务创建"应用程序"以获取API密钥和"秘密".

我的问题是如何保护我真正需要保留这些秘密 - 为了使其完全正常工作,您似乎需要秘密与服务的身份验证部分进行交互以授予应用程序访问您的帐户和/或授予它允许代表您发布更新.Facebook的文档说保护秘密,但至少有一个Facebook实用程序在源代码中分发API密钥和秘密.

值得注意的是:这不是您在Facebook环境中运行的标准Facebook"应用程序",也不是标准的"桌面"式编译应用程序 - 它是一个基于Web的应用程序,旨在自行运行网络服务器.这方面的受众可能很小,而且比平均水平更复杂 - 因此,一种技术替代方案是要求人们获得自己的API密钥以及使用该应用程序的秘密.然而,这似乎是很多工作,并且任何使用它的人都有相当大的障碍.

如果我将秘密和API密钥放在我的应用程序的配置中并将其检入Github以供全世界查看,那么任何人都知道或有任何洞察我自己会遇到什么样的麻烦?



1> Karl B..:

有权访问您的密钥的任何人都可以完全控制您的应用程序.此页面显示了他们可以通过admin.setAppPropertiesAPI调用更改的所有管理员设置.这可能包括将应用程序置于开发人员模式(因此没有其他人可以使用它),更改回调URL(这将破坏它)或各种其他恶作剧.

我不确定我是否完全理解你要做的事情,但我认为如果你查看会话机密的文档,那么你可能会发现一个解决方案,不涉及嵌入应用程序的密钥,但仍然允许用户交互使用API​​.Facebook Connect使用会话机密,允许在没有应用程序机密的情况下进行API调用.可以使用会话密钥进行的API调用往往仅限于与其自己的数据交互的用户.更新状态和授予权限绝对可以通过会话机密,Connect和XFBML的组合来完成.

正如保罗已经回答的那样:分享你的申请秘密是违反Facebook的服务条款.

推荐阅读
落单鸟人
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有