【发布时间】:2011-01-26 22:45:08
【问题描述】:
假设我有一个网站,其中包含有关我们产品的大量信息。我希望我们的一些客户(包括我们!)能够通过各种方法查找我们的产品,包括:
1) 从以酷炫的 JavaScript 方式返回数据的 AJAX 调用中提取数据 2) 创建使用该数据的 iPhone 应用程序; 3) 让其他 Web 应用程序将这些数据用于自己的目的。
通常,我会创建一个 API 并完成它。然而,这些数据实际上是轻度保密的——也就是说,我们不希望我们的竞争对手每天早上都能查看我们所有的产品,然后自动设置他们的价格来削弱我们的价格。而且我们还希望能够查看谁可能在滥用系统,所以如果有人每天对我们的 API 进行一千万次复杂的调用并让我们的服务器陷入困境,我们可以将其切断。
我的下一个合乎逻辑的步骤是创建一个开发人员的密钥来限制访问 - 这对于 Web 应用程序来说可以正常工作,但对于任何 AJAX 调用来说就不是那么好了。 (在我看来,他们需要在 JavaScript 中提供密钥,它是明文且易于查看,因此实际上根本没有安全性。特别是如果我们在我们的网站上使用我们自己的开发人员的密钥进行这些 AJAX 调用。)
所以我的问题是:在查看了 Oauth 和 OpenID 一段时间后,我不确定是否有一个解决方案可以处理上述所有三个问题。开发人员的密钥是否有某种规范的“最佳实践”,或者 Oauth 和 OpenID 能否以我尚未了解的某种方式轻松处理 AJAX 调用,还是我完全遗漏了什么?
【问题讨论】: