我对 Flash 和其他 Web 技术的了解不是很好,但我想知道,具有自己的应用程序 API(例如 Facebook)的站点如何验证来自应用程序的调用?我不太熟悉 Facebook API,但 Vkontakte(类似站点)使用密钥、会话 ID 和方法参数来生成查询。为什么有恶意的人不可能在应用程序运行时计算出这些参数并通过改变数据包发送完全不同的查询?我有点计划为 Vkontakte 编写应用程序,但我不明白应用程序是如何受到保护的。如果有人能向我推荐有关这些问题的任何文献,我也将不胜感激。
问问题
210 次
1 回答
3
安全性在于您的共享秘密永远不应通过网络传输。例如,对于 Facebook,您可以使用您的应用程序密码来验证服务器上的 cookie。如果您没有在服务器上进行任何验证,那么您是正确的,因为访问令牌或任何不安全的东西。但是,要记住的是,对于这些站点,访问令牌与单个用户相关联。因此,即使该人更改了 cookie 或任何访问令牌,仍然只有访问单个 facebook 帐户的权限。所以这个人会对他们自己的账户做恶意的事情。
因此,对于 flash 或 javascript,您总是假设访问令牌和 cookie 数据不安全。只有在验证 cookie 数据以确保 cookie 来自合法来源后,您才必须在服务器上执行任何对安全至关重要的操作。我假设 vkontakte 的功能非常相似。
同样,最重要的是永远不要将您的密钥传输到服务器之外。
于 2010-10-26T22:30:46.487 回答