保护JS应用程序中的API密钥

时间:2013-01-02 00:15:52

标签: javascript

我是JavaScript的新手。

我想要的帮助是了解如何保护用于访问我的Restful Web服务的API密钥。

我正在使用API​​密钥访问一些Restful Web服务,我希望这些API密钥受到保护。当我将API密钥放在控制器中时,它们将对用户可见,因为最终用户可以看到Javascript代码。

无论如何我可以将这些变量注册为一些变量并在控制器中使用,其中查看Javascript代码的最终用户无法看到API密钥?

提前致谢!

3 个答案:

答案 0 :(得分:5)

如果您需要保护服务器上的任何内容。例如,您可以在服务器上代理api调用,但是您无法使用客户端javascript代码保护任何内容。

答案 1 :(得分:3)

你完全糊涂了。

您正在努力实现security by obscurity。 客户端上的所有内容都是透明可以破解的。

只有在成功进行身份验证和授权后才允许用户访问资源。周期。

所以你必须将API密钥存储在服务器上,如果它们应该是秘密的(如Facebook提供的那样......)

(顺便说一句:删除angularjs标签)。

答案 2 :(得分:-2)

我正在使用AngularJS和PlayFramework,似乎我可以解决这个问题,因为外部Web服务/ API是通过Play控制器访问的,其中控制器方法由AngularJS模型访问

jsRouter.controllers.Application.tasks().ajax

因此,外部API密钥不必位于AngujarJS模型中。

谢谢大家的帮助。