2015-04-29 71 views
2

我可能会错,因为我对API密钥基础知识很陌生。如果我错了,请纠正我。API密钥实现的体系结构

我有一个JavaScript前端,后端应用程序PHP(可以是任何技术)。我想从AJAX的后端应用程序中公开一些API。因此,第三方开发人员可以在他们的应用程序中使用我的API,而不用担心后端的实际执行情况。

我会暴露一个API密钥给开发者,让他从自己的应用使得任何要求,采用API密钥,我可以保持它的API密钥访问应用程序的记录。

因为它是一个AJAX调用服务器,他存储在我给了JS文件中的API密钥。

问题是: 如果有人会使用寻找他的JS文件,可以很容易地获得专为其他应用程序设计的API密钥。我应该如何以安全的方式执行此操作。

任何人都可以帮忙。

+0

你可以建立引用网址(其API调用从起源)和您提供的密钥之间的关系。 – JuniorDev

+0

不能说是伪造的..?这是一个数据包数据,你可以使用WireShark进行更改。以及假设该人有PhoneGapped一个JS应用程序,那么?? –

+0

完全纯粹的JS应用程序几乎不可能由您的标准程序保护。也许你可以构建一个基于令牌的方法,首先登录/握手,并发送一个非常短效的密钥,以包含在每个后续的API调用中。您还可以查找Facebook如何在API上处理这些情况。在他们的情况下,JS应用程序不需要安全密钥,只需要appId。 – JuniorDev

回答

1

平原JavaScript是不可能从最终用户隐藏由于终端用户是一个执行所述代码。

您可以使用模糊JavaScript但话又说回来总是有逆向工程的可能性。

+0

这就是我的想法。但是,那么如何使用AJAX调用API API来请求某个API? –

+0

你没有。您使用基于服务器的代码来检索API响应 –

+0

不要让你...你的意思是AJAX不应该调用API,API应该通过另一个服务器端代码,如CURL来访问。 –