繁体   English   中英

如何从apularJS安全地将apiKey /客户端密钥传递给REST API

[英]How to pass apiKey / client secret securely from AngularJS to REST API

所以我正在开展一个项目,我将向特定的业务合作伙伴提供信息。 无需登录,因为业务伙伴的前端必须将预先分配的apiKey以及任何请求传递给我的REST API。 api仅响应包含有效apiKey请求,并且在生成apiKey时已经预定义了其访问级别。

目前我正在使用带有curl CakePHP,传递REST请求方法,以及硬编码的apiKey作为参数。 到目前为止,安全问题一直不是问题。 但是我们的团队正在考虑,如果我们的业务合作伙伴希望他们的网站能够在最近流行的JS前端框架工作(例如AngularJS)中完成。

对于相同的场景,这样一个简单的任务无法在JS框架中完成。 我显然不能简单地给他们客户端秘密( apiKey ),并让他们将它包含在他们的客户端代码中。 任何人都可以查看秘密并访问我们的REST API。

现在我们谈论安全性,我的团队真的不太了解。 有什么方法可以解决这个问题? 如何安全,模糊地传递客户机密与AngularJS的http请求? 任何建议或任何人都可以指出我可以研究的东西?

我有一些想法,但他们听起来不太对劲。

  • 我将把AngularJS放在CakePHP的webroot中。 那将是一个非常肮脏的黑客...只是引入不必要的复杂性。
  • 使用Origin Domain / IP / Public Secret和timestamp等约束的组合生成哈希,在我的API端,我比较哈希并为每个请求返回一个访问令牌...类似的东西......

有不同的选择

前两个将需要初始身份验证请求,您将获得一个令牌,该令牌将在以后的每个请求中传递给您的站点。

您可以创建代理,站点调用代理,然后再调用真实API并添加您的API密钥。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM