【发布时间】:2015-07-08 18:53:53
【问题描述】:
我可能错了,因为我对 API Key 基础知识非常陌生。如果我错了,请纠正我。
我有一个JavaScript 的前端和一个PHP 的后端应用程序(可以是任何技术)。我想从 AJAX 的后端应用程序中公开一些 API。这样第三方开发人员就可以从他们的应用程序中使用我的 API,而不必担心后端的实际实现。
我将向开发人员公开一个 API 密钥,以便他从应用程序发出的任何请求都使用该 API 密钥,并且我可以记录哪个 API 密钥正在访问该应用程序。
由于它是对服务器的 AJAX 调用,因此他将 API 密钥存储在我将提供的 JS 文件中。
问题是: 如果有人使用 seek 进入他拥有的 JS 文件,则可以轻松获得为其他应用程序设计的 API 密钥。我应该如何以安全的方式实现这一点。
有人可以帮忙吗?
【问题讨论】:
-
您可以在引荐来源网址(API 调用的来源)和您提供的密钥之间建立关系。
-
这不是伪造的吗..?它是一个数据包数据,您可以使用 WireShark 更改它。还假设如果这个人有 PhoneGapped 一个 JS 应用程序,那么呢??
-
完全纯 JS 应用程序几乎不可能通过您的标准来保护。也许您可以构建一个基于令牌的方法,首先登录/握手并发送一个有效期很短的密钥,以包含在每个后续的 API 调用中。您还可以查看 Facebook 如何在其 API 上处理这些情况。在他们的情况下,JS 应用程序不需要安全密钥,只需要 appId。
-
你不能。为了使其在浏览器中安全,您必须添加安全标头,如果它们位于不同的域中,则可能使用 CORS。办公室。您必须检查请求的域。我想这就是你能做的。来自浏览器的每个请求都可以伪造。
-
@inf3rno:你们如何实现安全标头?