【发布时间】:2014-04-20 22:34:34
【问题描述】:
我即将为我的网络服务创建一个 API。现在是时候考虑安全性了。 将有多个客户端访问我的 API,但它们都是由我创建的,因此没有第三方客户端。 现在我计划了一个移动应用程序(Phonegap / JS)、一个网络应用程序(也是 JS)和一个 Chrome 应用程序(也是 JS)。
遗憾的是,我无法为我的 API 请求使用 HTTPS。这就是为什么我考虑 oAuth 1 的安全性。
我现在的问题:结合 JS 使用 oAuth 有多安全,因为 Secrets 将存储在客户端。
oAuth 是一个好的决定还是有人可以推荐一个替代方案?
非常感谢!
【问题讨论】:
-
您的网站需要用户登录吗?如果是这样,通常的做法是在接受 Ajax 请求之前要求用户登录 cookie,如果有人试图滥用您的 Ajax API,您至少可以删除该用户帐户,这样他们就不能继续滥用它(直到他们手动创建一个新帐户并重新开始,但至少您对 API 的用户有一些控制和可跟踪性)。
-
许多其他 API 需要 APIKey。为自己在网页中使用,可以在页面中嵌入APIKey。虽然有人当然可以将其从网页中捞出并用于自己的用途,但如果您发现它被滥用,您只需将不同的 APIKey 放入您的网页并阻止之前使用的 APIKey。您甚至可以每天自动轮换您的 APIKey,这样任何人都无法在不定期刷新 APIKey 的情况下编写使用您 API 的长时间运行的应用程序。
标签: javascript api security oauth