将HTML5应用程序连接到服务器上的数据库*安全*

时间:2014-10-28 02:20:08

标签: javascript html5 mongodb rest api-key

我正在尝试将HTML5移动电话空间应用安全地连接到数据库(MongoDB)。该应用程序将在应用商店中,没有人可以看到代码。我对此有几个问题。据我所知,有两种方法可以做到这一点,一种是使用RESTful服务,另一种是使用数据库驱动程序(我遇到了这种方法的问题,因此使用了HTTP请求方法)。所以这是我的问题,

当我使用RESTful服务连接到数据库时,我必须包含HTTP查询,其中包含API密钥。我的问题:以这种方式使用它是否安全?我打算在数据库上存储一些敏感信息,但我打算加密它。但我不希望任何人看到我的API KEY,因为如果有人看到API密钥,那么很容易访问数据库上的信息。 API KEY在其中一个javascript文件中进行了硬编码。

有没有一种安全的方法在javascript中使用REST API密钥?

1 个答案:

答案 0 :(得分:2)

最好的方法是在app(oAuth 2.0)和DB(Client)之间添加Resource Server图层。这里的“资源所有者”是最终用户。

您可以使用“隐式”,“资源所有者密码凭据”或“客户端凭据”。请阅读“Access Tokens”和“Refresh Tokens”。

抽象协议流程(从here复制)

 +--------+                               +---------------+
 |        |--(A)- Authorization Request ->|   Resource    |
 |        |                               |     Owner     |
 |        |<-(B)-- Authorization Grant ---|               |
 |        |                               +---------------+
 |        |
 |        |                               +---------------+
 |        |--(C)-- Authorization Grant -->| Authorization |
 | Client |                               |     Server    |
 |        |<-(D)----- Access Token -------|               |
 |        |                               +---------------+
 |        |
 |        |                               +---------------+
 |        |--(E)----- Access Token ------>|    Resource   |
 |        |                               |     Server    |
 |        |<-(F)--- Protected Resource ---|               |
 +--------+                               +---------------+