使用AngularJS(可能还有PHP)安全地连接到Cloudant

时间:2017-02-24 23:07:26

标签: php angularjs couchdb cloudant

我构建了一个非常简单的AngularJS Shop应用程序来创建产品订单。 截至目前,该应用程序只是通过电子邮件向客户和零售商发送订单使用PHP,但我认为了解如何使用数据库,并将此订单(即数组)存储/检索到Cloudant中可能会很好。

但后来我意识到要连接到Cloudant服务,呼叫看起来像这样:

https://{username}:{password}@username.cloudant.com/DB

我认为这根本不是很安全,因为任何人都可以看到通话和凭证。

此外,在应用程序中,根本不需要任何人拥有帐户或登录,这对安全性有部分帮助。

由于我对Node或任何其他后端系统有0次经验,我想知道:是否可以仅使用AngularJS(或PHP来存储敏感值)来对Cloudant服务进行安全调用?

我已经阅读了一些关于每个用户一个数据库的内容,但在我的情况下似乎没有帮助,我需要一个单独的数据库来存储我的所有订单。

任何提示都将受到高度赞赏。

2 个答案:

答案 0 :(得分:2)

如果您需要在API调用中公开您的凭据,最好不要从前端执行。如果你正在使用Angular和PHP,那么从公众隐藏身份验证信息的最简单方法如下:

  • 创建一个PHP文件并将API代码移动到后端。
  • 这将是一项工作,但最终服务登录应该在服务器上进行。此文件应接收来自客户端的请求并将其传输到远程服务,然后将其响应返回给客户端。
  • 在前端使用AJAX来调用上面的PHP文件,然后继续向用户显示响应,就像处理API响应一样。

这样,您的API凭据不会向检查您网页的HTML源代码的任何人公开,您可以按照设置的方式保留大部分前端逻辑。

答案 1 :(得分:0)

正如@ppajer所说,我强烈反对使用AngularJS来做你想做的事情。将它留在后端并使用ajax进行调用。看一下这个回购,它可以帮到你:https://github.com/osipov/bluemix-cloudant-php-sample